我有一个网格视图,其中的行包含一个复选框。在gridview下面我有一个按钮。当我单击它时,我想从客户端选择所有复选框。到目前为止,我已经阅读了有关 OnClientClick、javascript 等的内容。但我的代码不起作用。有人可以帮帮我吗?
注意:我不想选择在标题中选择复选框的复选框(我发现了很多关于此的示例),但是单击 gridview 之外的按钮
<asp:GridView runat="server" ID="MyGridView" EnableViewState="true"
AutoGenerateColumns="False"
><AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="Select" SortExpression="Select" ItemStyle-HorizontalAlign="Center" >
<EditItemTemplate>
<asp:CheckBox ID="CkBoxSelectET" runat="server" /></EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CkBoxSelectIT" runat="server" /></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" SortExpression="Name" ItemStyle-HorizontalAlign="Center" Visible="false" >
<ItemTemplate>
<asp:Label ID="name" runat="server" Text='<%# Bind("Name") %>' Visible="false" /></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="City" SortExpression="City" ItemStyle-HorizontalAlign="Left" >
<ItemTemplate>
<asp:Label ID="lblCity" runat="server" /></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button runat="server" ID="btnSelect" Text="Select all" BackColor="LightGray" OnClientClick="SelectAll(id);" />
<script type="text/javascript">
var gridViewControl = document.getElementById('<%= MyGridView.ClientID %>');
function SelectAll(id) {
for (i = 0; i < gridViewControl.elements.length; i++) {
if (gridViewControl.elements[i].type == "checkbox") {
gridViewControl.elements[i].checked = document.getElementById(id).checked;
}
}
}
在c#中,当我绑定数据时:
btnSelect.Attributes.Add("OnClientClick", "javascript:SelectAll('" + btnSelect.ClientID + "')");