Gridview vith复选框-当选中某些复选框时,使按钮处于非活动状态

本文关键字:复选框 按钮 于非 活动状态 vith Gridview | 更新日期: 2023-09-27 18:20:46

我有一个Gridview,它绑定了SQL表中的一些数据。在GV的第一列中,我有复选框。是否可以根据选中的复选框启用/禁用按钮?

为了更好地理解,这里有一个例子;

在GV中,我们有第一列cboxes,第二列是ID,第三列是Category。

<asp:GridView ID="MyGV" runat="server" AutoGenerateColumns="False" DataKeyNames="ID">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="MyCBox" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
        <asp:BoundField DataField="category" HeaderText="Category" SortExpression="category" />
    </Columns>
</asp:GridView>

我们有两个按钮(Btn1和Btn2)

<asp:Button ID="Btn1" runat="server" Text="btn1" OnClick="Btn1_Click" />
<asp:Button ID="Btn2" runat="server" Text="btn2" OnClick="Btn2_Click" />

现在。。。假设我们有两个类别(Cat1和Cat2)。当我们选中一个复选框,并且该行的Category值为Cat1时,我们启用了Btn1,禁用了Btn2;

Btn1.Enabled = true;
Btn2.Enabled = false;

这能做到吗?怎样

Gridview vith复选框-当选中某些复选框时,使按钮处于非活动状态

假设您只有两个类别

<asp:GridView ID="MyGV" runat="server" AutoGenerateColumns="False" DataKeyNames="ID">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
             <asp:CheckBox ID="MyCBox" Text="Select Cat" AutoPostBack="true" ToolTip='<%#Bind("category") %>' OnCheckedChanged="MyCBox_CheckedChanged" runat="server" />
        </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
    <asp:BoundField DataField="category" HeaderText="Category" SortExpression="category" />
</Columns>

复选框的代码隐藏事件

protected void MyCBox_CheckedChanged(object sender, EventArgs e)
{
    if( ((CheckBox)sender).ToolTip == "cat1"
      { 
       Btn1.Enabled = true;
       Btn2.Enabled = false;
      }
    else 
      { 
       Btn1.Enabled = false;
       Btn2.Enabled = true;
      }          
}

按钮是网格的一部分吗?