我有一个DetailsView如下
<asp:DetailsView runat="server" ID="NewEmployeeDV" ClientIDMode="Static" DataSourceID="NewEmployeeDS" OnItemUpdating="NewEmployeeDV_OnItemUpdating" OnDataBound="NewEmployeeDV_OnDataBound" AutoGenerateRows="False">
<Fields>
<ItemTemplate>
<telerik:RadGrid runat="server" ID="ChildrenRG" DataSourceID="ChildrenDS" ClientIDMode="Static" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" OnInsertCommand="ChildrenRG_OnInsertCommand" ShowFooter="True" AutoGenerateColumns="False" AutoGenerateDeleteColumn="True" AutoGenerateEditColumn="True" AutoGenerateHierarchy="True" OnNeedDataSource="ChildrenRG_NeedDataSource">
<GroupingSettings CollapseAllTooltip="Collapse all groups" />
<MasterTableView DataSourceID="ChildrenDS" ShowFooter="True" CommandItemDisplay="TopAndBottom" >
<Columns>
<telerik:GridTemplateColumn DataField="ChildsName" HeaderText="Childs Name" SortExpression="ChildsName" UniqueName="ChildsNameColumn">
<EditItemTemplate>
<asp:TextBox runat="server" ID="ChildsNameID" Text='<%# Bind("ChildsName") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="ChildsNameLBL" Text='<%# Bind("ChildsName") %>'></asp:Label>
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox runat="server" ID="ChildsNameTB" Text='<%# Bind("ChildsName") %>'></asp:TextBox>
</InsertItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
我有一些JavaScript如下
function saveAllChanges() {
var dv = document.getElementById("<%= NewEmployeeDV.ClientID %>");
alert(dv);
var rg = dv.getElementsByTagName("ChildrenRG");
alert(rg);
var masterTable = rg.get_masterTableView();
var batchEditManager = rg.get_batchEditingManager();
//get the batch edit grids you want to save
var tables = [];
tables.push(masterTable);
var isDirty = false;
for (var i = 0; i < tables.length; i++) {
if (batchEditManager.hasChanges(tables[i])) {
isDirty = true;
break;
}
}
if (isDirty) {
batchEditManager.saveTableChanges(tables);
}
return isDirty;
现在我看到很多人都在问这个问题,但我找不到解决办法。
如何访问RadGrid
中DetailsView
或JavaScript
中的任何其他控件。
我JavaScript
中的提醒告诉我,DetailsView
和RadGrid
是HTMLCollections
,这似乎不正确。
随后对rg.get_batchEditingManager()的调用未定义。
我该如何解决这个问题?它们应该是HTMLCollections
吗?