下記の件につきまして、お力添えを賜りたいと存じます。何らかの理由で、以下のコードが機能しません。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>