我有一个Gridview绑定了SQL表中的一些数据。在GV的第一列,我有CheckBoxes。是否可以根据选中的复选框启用/禁用按钮?
为了更好地理解,这是一个例子;
在GV中,我们有第一列cbox,第二列是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)。当我们选中一个复选框并且该行的类别值为Cat1时,我们启用了Btn1并禁用了Btn2;
Btn1.Enabled = true;
Btn2.Enabled = false;
可以这样做吗?怎么样?
答案 0 :(得分:2)
假设您只有两个类别
,请尝试此操作<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;
}
}
答案 1 :(得分:0)
按钮是网格的一部分吗?