1

以下のリンクからコードをコピーし ました。C#でTelerikネストグリッドのすべてのチェックボックスを確認してください

ただし、コードを実行すると、次のエラーが発生します。

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>
4

2 に答える 2

4

templateColumn の代わりに Telerik:GridClientSelectColumn を使用する必要があるかもしれません。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
        }
于 2012-12-17T21:10:37.910 に答える
0

元の質問に答えるには遅すぎることはわかっています。それでも、他の開発者にフィードバックを提供したいと思っていました。

両方の場所で Java スクリプト メソッド名を checkAll() から別の名前に変更すると、この厄介な JS エラーは表示されなくなります :)

于 2013-06-06T19:16:12.003 に答える