【发布时间】:2010-10-17 02:33:47
【问题描述】:
在母版页中,我有一个标准的 DataGrid:
<asp:DataGrid ID="dgMyGrid" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<asp:CheckBox CssClass="Checker" ID="cbSelectAll" runat="server" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="cbSelect" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
使用以下 jQuery 使标题复选框全选:
$(document).ready(function() {
$("#ctl00_ContentPlaceHolder1_dgMyGrid_ctl01_cbSelectAll").click(function() {
$("#<%=dgID %> :checkbox").each(function(i)
{
this.checked = $("#ctl00_ContentPlaceHolder1_dgMyGrid_ctl01_cbSelectAll").is(":checked")
});
});
});
这可行,但有点难看 - 我无法使用
获取标题复选框的客户端 ID
(就像我对数据网格所做的那样)可能是因为 javascript 是在该控件之前呈现的。有没有更优雅的方法可以让我的复选框的 clientID 从数据网格中取出?我认为如果我没有像这样对 clientID 进行硬编码会更好。
抱歉,如果这个问题的答案很明显,这是我尝试 jQuery 的第一天! :)
【问题讨论】: