我正在关注帖子:
http://mosesofegypt.net/post/GridView-with-Select-All-CheckBox-using-JQuery.aspx
在asp.net gridview中创建一个复选框列,并选择/取消选择所有功能。 在我的例子中,gridview和javascript(JQuery)代码位于动态加载的usercontrol中,并且该用户控件有多个实例。选择/取消选择功能仅适用于在页面上创建的最后一个用户控件。 换句话说,js脚本中的gvProducts.ClientId只知道最后一个gridview。 任何想法如何在其他用户控件(即除了最后一个)之外引用gridview的ClientIds? 非常感激任何的帮助。
编辑:此问题与本文中提到的问题基本相同:Multiple user control instances and ClientID in JS 但它没有帮助答案。
谢谢, 阿里
答案 0 :(得分:0)
你可以将一个CssClass添加到GridView中,并将你的jQuery选择器基于它。
脚本:
<script type="text/javascript">
$(function () {
$(".t th input:checkbox").click(function () {
var $checkbox = $(this).closest('table').find(':checkbox:not(:first)');
$checkbox.attr('checked', $(this).attr('checked'));
});
});
</script>
2个具有相同类名的表:
<table class="t">
<tr>
<th align="left" scope="col">Category</th>
<th align="left" scope="col">Product</th>
<th align="right" scope="col">Unit Price</th>
<th align="left" scope="col">Supplier</th>
<th scope="col">
<input type="checkbox" name="select-all" />
</th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td><input type="checkbox" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td><input type="checkbox" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td><input type="checkbox" /></td>
</tr>
</table>
<br /><br /><br />
<table class="t">
<tr>
<th align="left" scope="col">Category</th>
<th align="left" scope="col">Product</th>
<th align="right" scope="col">Unit Price</th>
<th align="left" scope="col">Supplier</th>
<th scope="col">
<input type="checkbox" name="select-all" />
</th>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td><input type="checkbox" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td><input type="checkbox" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td><input type="checkbox" /></td>
</tr>
</table>