jQuery检查/取消选中gridview内的所有内容

时间:2012-09-24 03:56:49

标签: c# jquery asp.net

在我的用户控件中,有一个gridview。我想使用标题复选框选择/取消选中gridview内的所有复选框。所以我使用jQuery实现它。

function SelectAllCheckboxes(chk) {
    $('#<%=gridView.ClientID %> >tbody >tr >td >input:checkbox').attr('checked', chk.checked);
}

在我的网格视图的headertemplate我把这个

<asp:CheckBox ID="chkHeader" runat="server"  OnClick="javascript:SelectAllCheckboxes(this);"/>

效果很好。 但是当另一个开发人员将我的用户控件放入aspx 两次时, 它效果不好。

每当我检查第一个或第二个Gridview的标题复选框时,只检查或取消选中第二个 GridViews的复选框。

即使我检查第一个Gridview的标题复选框,它也永远不会检查第一个GridView的复选框。

我需要进行哪种修改?

提前致谢。

1 个答案:

答案 0 :(得分:3)

您可以使用closest()方法:

function SelectAllCheckboxes(chk) {
    $(chk).closest('table >tbody >tr >td >input:checkbox').attr('checked', chk.checked);
}

来自jquery的文档:“获取与选择器匹配的第一个元素,从当前元素开始,然后逐步进入DOM树。”

编辑:我不确定它是否能像那样工作。如果没有,你可以尝试:

function SelectAllCheckboxes(chk) {
    $(chk).closest('table').find('>tbody >tr >td >input:checkbox').attr('checked', chk.checked);
}

希望它有所帮助。