[英]Check all CheckBoxes in Telerik RadGrid
我復制了以下鏈接中的代碼在C#中檢查Telerik嵌套網格中的所有CheckBoxes
然而,當我運行代碼時,我收到此錯誤:
0x800a01b6 - Microsoft JScript runtime error: Object doesn't support this property or method
和'checkAll(this, gridToCheckAll);'
在動態運行代碼中突出顯示錯誤。
任何幫助,將不勝感激。
<script>
var gridToCheckAll = '<%= rgFiles.ClientID %>';
function checkAll(sender, containerID) {
var checked = sender.checked;
var container = document.getElementById(containerID);
var checkboxes = container.getElementsByTagName('input');
for (var i = 0, l = checkboxes.length; i < l; i++) {
if (checkboxes[i] != sender && !checkboxes[i].disabled)
checkboxes[i].checked = checked;
}
}
</script>
<telerik:RadGrid id="rgFiles" runat="server" HorizontalAlign="NotSet" BackColor="darkgray"
AllowPaging="True" PageSize="50" AllowSorting="True"
EnableEmbeddedScripts="true"
OnNeedDataSource="rgFiles_NeedDataSource"
OnItemCommand="rgFiles_ItemCommand"
OnItemDataBound="rgFiles_ItemDataBound"
OnItemEvent="rgFiles_ItemEvent"
AllowMultiRowSelection="true" Skin=""
AllowFilteringByColumn="true" EnableLinqExpressions="false" >
<MasterTableView HorizontalAlign="NotSet" AutoGenerateColumns="false" AllowSorting="True"
Font-Size="7pt" AllowCustomSorting="true" CellPadding="2" CellSpacing="1" BorderWidth="0px"
TableLayout="Fixed" AlternatingItemStyle-Wrap="false" ItemStyle-Wrap="false"
CommandItemStyle-Wrap="false" >
<FooterStyle CssClass="datagrid-footerstyle" HorizontalAlign="Right" />
<ItemStyle CssClass="datagrid-itemstyle" Wrap="false" Font-Size="XX-Small" Height="15px"/>
<EditItemStyle BackColor="#2461BF" />
<PagerStyle BackColor="#E0E0E0" ForeColor="DimGray" HorizontalAlign="Left" Mode="NextPrevAndNumeric"
NextPageText="next" PrevPageText="prev" AlwaysVisible="True" />
<HeaderStyle CssClass="datagrid-headerstyle" ForeColor="White" />
<FilterItemStyle BackColor="#a9a9a9" />
<AlternatingItemStyle CssClass="datagrid-alternatingitemstyle" />
<ExpandCollapseColumn Visible="False">
<HeaderStyle Width="19px" />
</ExpandCollapseColumn>
<RowIndicatorColumn Visible="False">
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<Columns>
<telerik:GridTemplateColumn SortExpression="Reviewed" DataField="Reviewed" HeaderText="<input type='checkbox' id='checkAll' onclick='checkAll(this, gridToCheckAll);'>"
UniqueName="Reviewed" AllowFiltering="false" >
<ItemTemplate>
<asp:CheckBox ID="cbReviewed" runat="server" OnCheckedChanged="cbReviewed_CheckedChanged" />
</ItemTemplate>
<ItemStyle Wrap="False" HorizontalAlign="Center" VerticalAlign="Top"></ItemStyle>
<HeaderStyle Width="50px"></HeaderStyle>
</telerik:GridTemplateColumn>
也許您應該使用Telerik:GridClientSelectColumn代替您的templateColumn,Telerik具有您正在尋找的內置功能。
API: http : //www.telerik.com/help/aspnet-ajax/grid-column-types.html
<radgrid...>
<masterTableView ... >
<columns>
<telerik:GridClientSelectColumn UniqueName="ClientSelectColumn">
<HeaderStyle Width="35px" />
</telerik:GridClientSelectColumn>
</columns>
</MasterTableView>
<ClientSettings>
<ClientEvents OnRowSelected="RowSelected" OnRowDeselected="RowDeselected"/>
</ClientSettings>
</radgrid>
function RowDeselected(sender, eventArgs){
//your code
}
function RowSelected(sender,eventArgs)
{
var MasterTable = sender.get_masterTableView();
var selectedRows = MasterTable.get_selectedItems();
var selectedRowsCount = selectedRows.length;
//etc
}
我知道我來不及回答原來的問題。 但仍想提供我對其他開發人員的反饋。
將您的java腳本方法名稱從checkAll()更改為兩個地方的任何其他內容,您將看不到這個討厭的JS錯誤:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.