在我的用户控件中,有一个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的复选框。
我需要进行哪种修改?
提前致谢。
答案 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);
}
希望它有所帮助。