c# - 检查 Telerik RadGrid 中的所有复选框

标签 c# telerik radgrid

我从下面的链接复制了代码 Check all CheckBoxes in Telerik nested Grid in C#

当我运行代码时,怎么会出现这个错误:

0x800a01b6 - Microsoft JScript 运行时错误:对象不支持此属性或方法

并且 '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
        }

关于c# - 检查 Telerik RadGrid 中的所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13884383/

相关文章:

asp.net - Telerik radGrid - 当数据源=数据集时可以使用AllowAutomaticUpdates吗?

performance - Telerik RadGrid 工作示例

asp.net - Telerik RadGrid - 如何默认为编辑模式?

c# - 如何在 Powershell 中嵌套自定义 .NET 类型?

c# - 为什么我的本地机器可能会错误地格式化国际日期?

c# - 如何找到三次方程的所有正整数解?

asp.net - Telerik rad 异步文件上传控件在本地运行良好,但在服务器中运行不佳

c# - 无法通过诺基亚成像 SDK 使用下载的图像

java - Nativescript + Genymotion : App not starting up on simulator - Execution failed for task ':buildMetadata'

c# - TreeView 项目 - 分层数据模板