0

我想就以下问题向您寻求帮助。由于某种原因,下面的代码不起作用。当我单击 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>
4

0 回答 0