ASP.Net флажок GridView нажмите Обновить другой флажок

В моей ASP.Net проект у меня есть GridView с 2 флажками и другими столбцами данных. 2 флажка похожи на переключатель, поэтому, когда 1 отмечен, другой должен быть снят. Я не могу изменить это на переключатель из-за требования. Как я могу достигнуть этого взаимного исключения на стороне клиента?

Ниже приведен GridView

<asp:GridView ID = "gridview1" runat="server" HorizontalAlign="Left" AutoGenerateColumns="false"
    BackColor="White"
    BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="6"
    ForeColor="Black" GridLines="Vertical">
    <AlternatingRowStyle BackColor = "#CCCCCC" />
    < FooterStyle BackColor="#CCCCCC" />
    <HeaderStyle BackColor = "Black" Font-Bold="True" ForeColor="White" />
    <Columns>
        <asp:TemplateField HeaderText = "Yes" ItemStyle-HorizontalAlign="Center">
            <ItemTemplate>
                <asp:CheckBox ID = "checkbox1" runat="server"/>   
            </ItemTemplate>
            <ItemStyle HorizontalAlign = "Center" ></ ItemStyle >
        </ asp:TemplateField>

        <asp:TemplateField HeaderText = "No" ItemStyle-HorizontalAlign="Center">
            <ItemTemplate>
                <asp:CheckBox ID = "checkbox2" runat="server" />   
            </ItemTemplate>
            <ItemStyle HorizontalAlign = "Center" ></ ItemStyle >
        </ asp:TemplateField>

        <asp:TemplateField HeaderText = "Account" ItemStyle-HorizontalAlign="Right" >
            <ItemTemplate>
                <asp:Label runat = "server" Text='<%#Eval("Account") %>'></asp:Label>
            </ItemTemplate>

            <ItemStyle HorizontalAlign = "Right" ></ ItemStyle >
        </ asp:TemplateField>

        <asp:TemplateField HeaderText = "REL" ItemStyle-HorizontalAlign="Right">
            <ItemTemplate>
                <asp:Label runat = "server" Text='<%Eval("Relation") %>' 
                    ID="RelPosTypeLabel"></asp:Label>
            </ItemTemplate>

            <ItemStyle HorizontalAlign = "Right" ></ ItemStyle >
        </ asp:TemplateField>

    </Columns>
</asp:GridView>

1 ответ

  1. Здесь фрагмент, который будет работать для вас.

    <script type="text/javascript">
        $("#<%= GridView1.ClientID %> tr input:checkbox").change(function () {
            var rowIndex = parseInt(this.id.split("_")[2]);
            switchCheckBoxes(rowIndex + 1);
            this.checked = true;
        });
    
        function switchCheckBoxes(rowIndex) {
            $("#<%= GridView1.ClientID %> tr").each(function (index, element) {
                if (index == rowIndex) {
                    $(this).find("td input:checkbox").each(function () {
                        this.checked = false;
                    });
                }
            });
        }
    </script>
    

    И удалите все эти дополнительные места, это улучшит читаемость ID = "gridview1"> ID="gridview1"