2

单击标题复选框,我有一个 GridView 。我想检查 ItemTemplate 中的所有 CheckBox。

我曾尝试通过 Jquery 实现,但没有奏效,因为

 $(document).ready(function () {
        $('#<%=ChkSelectAll.ClientID %>').click(function () {
            $('#<%=ChkSelectAll.ClientID %>').is(":checked")(function () {
                $('#<%=ChkSelect.ClientID %>').prop('checked', true);
            });
        });
    });

我有一个 Gridview 作为

<Columns>
            <asp:TemplateField HeaderStyle-Width="20px">
                <HeaderTemplate>
                    <asp:CheckBox ID="ChkSelectAll" runat="server"  />
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="ChkSelect" runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
</Column>

感谢您的任何帮助。

4

4 回答 4

6

检查这个小提琴。如果你有很多复选框而不是使用 class 而不是 id 因为 ID 应该是唯一的

$('#ChkSelectAll').click(function () {
if($(this).is(":checked")){
    $('.ChkSelect').prop('checked', true);
}
});

用小提琴编辑代码

$('#ChkSelectAll').click(function () {
  if($(this).is(":checked")){
    $('.ChkSelect').prop('checked', true);
  }else{
    $('.ChkSelect').prop('checked', false);
  }
});
于 2012-12-29T06:54:29.017 回答
2
$("#ChkSelectAll").click(function(){
if($(this).is(":checked")){
$('#ChkSelect').attr('checked', true);
}
else{
$('#ChkSelect').attr('checked', false);
}
}
于 2012-12-29T07:04:20.690 回答
1

gridview 将为每一行具有唯一的 id,因此您不能使用单个 id 更改所有这些。

改变

$('#<%=ChkSelect.ClientID %>').prop('checked', true);

$('[id*=ChkSelect]').prop('checked', true);

您可以缩短代码。

$(document).ready(function () {
      $('#<%=ChkSelectAll.ClientID %>').click(function () {           
            $('[id*=ChkSelect]').prop('checked', this.checked);           
      });
});
于 2012-12-29T06:47:33.487 回答
0

我尝试了在 stackoverflow 上找到的几种解决方案,但都没有奏效。我使用 jquery-1.9.1.min.js 和 chrome 来测试它。这是我的工作解决方案

$(document).ready(function() {
  $('#goOffline').click(function(event) {
    if($('#goOffline').is(':checked')){
        $('#goOffline').attr("checked","checked");
    } else {
        $('#goOffline').removeAttr("checked");
    }
});

});

基本上发生的是我通过在点击事件上使用 $('#goOffline') atach 来选择复选框元素。然后我测试它是否被检查。如果它被检查而不是附加属性检查,如果没有,则删除属性检查。请注意,我的 html 输入标记如下所示:

<label for="goOffline" class="checkbox">
<input type="checkbox" name="goOffline" id="goOffline">
    Go offline
</label>
于 2013-07-25T06:21:02.983 回答