我想就以下问题向您寻求帮助。由于某种原因,下面的代码不起作用。当我单击 GridView 行中的最后一个复选框时,未选中该复选框,其他复选框也没有任何反应。
我要实现的目标是检查最后一个复选框,然后应自动检查和禁用GridView行中的所有其他复选框。如果我取消选中最后一个复选框,则不应选中和启用一行中的所有其他复选框。
我会很感激你的帮助。
Javascript代码:
function SelectAll(chkBox) {
var isChecked = chkBox.checked;
var thisItem = chkBox.id;
var items = chkBox.parentNode.parentNode.getElementsByTagName("input");
for (i = 0; i < items.length; i++) {
if (items[i].id != thisItem && items[i].type == "checkbox") {
if (isChecked) {
items[i].checked = true;
items[i].enabled = false;
}
else {
items[i].checked = false;
items[i].enabled = true;
}
}
}
}
网格视图:
<asp:GridView ID="CountryAccessGrid" runat="server" AutoGenerateColumns="False" DataKeyNames="Country"
BorderWidth="1" BorderColor="#ece9d8" BorderStyle="solid">
<HeaderStyle CssClass="GridHeader" />
<RowStyle CssClass="GridRow" />
<AlternatingRowStyle CssClass="GridAltRow" />
<EmptyDataTemplate>
<div style="padding:10px;">
There are no data
</div>
</EmptyDataTemplate>
<Columns>
<asp:TemplateField HeaderText="Country">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "Country_Descr")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Phones" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox
ID="chkPhones"
runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Lotus Notes" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox
ID="chkLotus"
runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Employee Relationship" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox
ID="chkRelationship"
runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Country Administrator" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox
ID="chkIsAdmin"
runat="server"
OnClick="javascript:SelectAll(this);"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>