簡體   English   中英

檢查Telerik RadGrid中的所有CheckBoxes

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM