저는 최근에 my answer here처럼 언제든지 중첩 된 RadGrid 컨트롤을 참조하는 방법을 알아 냈습니다.편집 모드의 중첩 된 RadGrid에는 변경되지 않은 값이 있습니다.
그러나 내 주 격자 및 중첩 된 격자는 편집 모드에 있으며 중첩 된 격자의 새 값은 다시 게시하는 동안에는 존재하지 않습니다. 어떤 열의 값을 편집 한 다음 내 버튼을 클릭하여 포스트 백을 실행하면 중첩 된 RadGrid에 액세스 할 때 해당 값이 변경되지 않습니다 (새 값은 이전 값과 동일 함).
영문 (닫는 태그와 클라이언트 측을 포함하지 않는 자바 스크립트 메소드 정의 및 기타 임의 설정) :
<telerik:RadGrid ID="RadGrid1" runat="server" HeaderStyle-Width="675px" Width="675px" Height="359px" PageSize="10" GridLines="None" AccessKey="0" Skin="Office2007" ImagesPath="~/Skins/Office2007/Grid/Images" AllowFilteringByColumn="false" AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false"
OnNeedDataSource="RadGrid1_NeedDataSource" OnItemDataBound="RadGrid1_ItemDataBound" OnItemCreated="RadGrid1_ItemCreated" OnEditCommand="RadGrid1_EditCommand" OnCancelCommand="RadGrid1_CancelCommand" OnUpdateCommand="RadGrid1_UpdateCommand" OnItemCommand="RadGrid1_ItemCommand" OnPreRender="RadGrid1_PreRender" >
<MasterTableView Name="Parent" HierarchyDefaultExpanded="false" HierarchyLoadMode="ServerBind" DataKeyNames="ID" EditMode="InPlace" >
<NestedViewTemplate>
<asp:Panel ID="RadGrid2" runat="server" >
<telerik:RadGrid ID="rgDetailItems" runat="server" Width="1675px" AutoGenerateColumns="false" AllowPaging="false" ShowFooter="true"
OnEditCommand="rgDetailItems_EditCommand" OnCancelCommand="rgDetailItems_CancelCommand" OnUpdateCommand="rgDetailItems_UpdateCommand"
OnNeedDataSource="rgDetailItems_NeedDataSource" OnItemDataBound="rgDetailItems_ItemDataBound" >
<MasterTableView EditMode="InPlace">
<Columns>
<telerik:GridBoundColumn HeaderText="Amount" DataField="DtlTransAmount" UniqueName="DtlTransAmount" SortExpression="DtlTransAmount"
HeaderStyle-Width="20px" ItemStyle-Width="20px" FilterControlWidth="20px" DataFormatString="{0:$0.00}"/>
CS :
var items = ((RadGrid1.MasterTableView.Items[0].ChildItem as GridNestedViewItem)
.FindControl("RadGrid2") as RadGrid).EditItems;
foreach (GridEditableItem editItem in items)
{
Hashtable newValues = new Hashtable();
editItem.OwnerTableView.ExtractValuesFromItem(newValues, editItem);
foreach (DictionaryEntry de in newValues)
{
string valOld = (editItem.SavedOldValues[de.Key] as string) ?? "";
string valNew = (newValues[de.Key] as string) ?? "";
// valOld always equals valNew!
}
}
중첩 된 RadGrid 또는 얻을 수있는 다른 방법이 있나요 항목을 편집하여 값이 존재합니까?
당신이 당신의 aspx 페이지 코드를 제공 주시겠습니까? –
격자에 aspx 마크 업 게시 됨. 나는 'ClientSettings'와'EditItemStyle'과 같은 추가 정보를 제거했습니다. – DanM7
나는 @JayeshGoyani의 답을 얻었다. 이것 좀 봐 주셔서 감사합니다. – DanM7