Innerhalb einer Masterpage Ich habe eine Standard-Datagrid:Checkbox in Datagrid-Header ClientID (JQuery)
<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>
die folgenden jQuery haben, dass das Header-Kontrollkästchen alle macht:
$(document).ready(function() {
$("#ctl00_ContentPlaceHolder1_dgMyGrid_ctl01_cbSelectAll").click(function() {
$("#<%=dgID %> :checkbox").each(function(i)
{
this.checked = $("#ctl00_ContentPlaceHolder1_dgMyGrid_ctl01_cbSelectAll").is(":checked")
});
});
});
dies funktioniert, aber es ist ein bisschen hässlich - ich kann nicht die Client-ID für das Header-Kontrollkästchen mit
<% = cbSelectAll.ClientID%> (wie ich für das Datagrid getan habe) Möglicherweise weil das Javascript vor diesem Steuerelement gerendert wird. Gibt es eine elegantere Möglichkeit für mich, die ClientID meines Kontrollkästchens aus dem Datagrid zu bekommen? Ich denke, es wäre besser, wenn ich die ClientID nicht so fest codiere.
Entschuldigung, wenn die Antwort auf dieses offensichtlich ist, ist es mein erster Tag, der jQuery versucht! :)
Danke dafür, es ist die Lösung, die ich verwendet habe. Das heißt, ich würde gerne eine Lösung dafür in jQuery Allone sehen, aber ich werde dies als die Antwort markieren, wenn es keine weiteren Antworten gibt. – RYFN