2

私は次のグリッドビューを持っています -

<asp:GridView ID="group_table" Runat="server" 
    AutoGenerateColumns="False" onprerender="group_table_PreRender" 
    onrowdatabound="group_table_RowDataBound"
    ClientIDMode="Static"  CellPadding="4" ForeColor="#333333" 
    GridLines="None" Width="915px" BorderStyle=Ridge >
    <AlternatingRowStyle BackColor="White" />

    <Columns>
    <asp:TemplateField ItemStyle-Width=90>
       <HeaderTemplate>
           <asp:CheckBox ID="selectAllCheckBox" runat="server" Text="Select all"/>
       </HeaderTemplate>
     <ItemTemplate>

       <asp:CheckBox ID="selectCheckBox" runat="server"/>


     </ItemTemplate>

  </asp:TemplateField>

そして、ユーザーがすべてのチェックボックスをクリックselectAllCheckBoxするとチェックされるように、次のJavaScript関数を実装しようとしました-

 $(document).ready(function() {

  var headerCheckbox = $('#group_table > tbody > tr > th > input:checkbox');

  headerCheckbox.click(function() {
     var headerChecked = $(this).attr('checked');
     var rowCheckboxes = $('#group_table > tbody > tr > td > input:checkbox');
     rowCheckboxes.attr('checked', headerChecked);
  }); 

}); 

しかし、何らかの理由でこれは影響を与えていません。どこが間違っているのでしょうか?

4

3 に答える 3

1

質問に対する私のコメントで述べたように (あなたが述べたのは正しい)、headerCheckbox変数のセレクターが間違っています。表の見出しは ではthead なくにありtbodyます。これを試して:

var headerCheckbox = $("#group_table > thead > tr > th > input:checkbox");
于 2013-02-21T13:26:51.033 に答える
0

asp:GridView がどのように html を生成するのかわかりませんが、おそらく問題は、 tbody > tr > th 代わりに クリック ハンドラーを追加することthead > tr > thですか?

于 2013-02-21T13:23:41.677 に答える