基于GridView上的复选框的启用/禁用按钮 [英] enabled/disabled button based on checkbox on GridView
本文介绍了基于GridView上的复选框的启用/禁用按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的网格中有4列,其中有复选框和按钮控件
我需要根据用户选中的复选框来启用或禁用按钮.我该怎么办?
Hi,
I have 4 columns in my grid in which i have check box and button controls
I need to make button enabled or disabled based on the checkbox checked by the user. How can I do that?
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AccessKey="a" DataKeyNames="id" AllowPaging="false" BorderColor="Blue" ForeColor="Black" OnRowCommand="grid1_rowcommand" GridLines="Both" HeaderStyle-BorderColor="Aqua" BackColor="White" Font-Size ="small" CssClass="header" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="select">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="checkboxr" runat="server" OnCheckedChanged="CheckBox2_CheckedChanged1" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=" col2" FooterStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("ID") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("ID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="col3">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind(" ") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind(" ") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="button">
<EditItemTemplate>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Button ID="Button6" runat="server" Text="Upload" CommandName="RowSelected"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
谢谢inadvance
thanks inadvance
推荐答案
在检查更改事件时使用此C#代码.
use this C# code on check changed event..
Protected void CheckBox2_CheckedChanged1(Object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
GridViewRow gridrow = (GridViewRow)(chk.parent);
if (chk.checked)
{
Button btn = (Button)(gridrow.FindControl("Button6"));
btn.enabled=true;
}
else
{
Button btn = (Button)(gridrow.FindControl("Button6"));
btn.enabled=false;
}
}
希望这对您有帮助...
Hope this helps...
好奇怪的是,我从来没有在自己从事的工作中使用过网格视图.但我现在可以告诉您,您收到此错误无法将system.web.ui.webcontrol.gridview隐式转换为system.web.ui.webcontrol.gridviewrow",因为您将永远无法将GridView转换为GridViewRow "GridViewRow gridrow =(GridViewRow)(chk.parent);".
必须改为执行类似的操作(基于解决方案1的代码)
Well I strangely enough never used a grid view in the kind of stuff I work on. But I can tell you right now that you are receiving this error "cannot implicitly convert system.web.ui.webcontrol.gridview to system.web.ui.webcontrol.gridviewrow" because you will never be able to convert a GridView to a GridViewRow "GridViewRow gridrow = (GridViewRow)(chk.parent);".
Something like this would have to be done instead (based on solution 1 code)
protected void CheckBox2_CheckedChanged1(Object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
GridViewRow gridrow = ((GridView)(chk.Parent)).Rows[rowNum];
if (chk.Checked)
{
Button btn = (Button)(gridrow.FindControl("Button6"));
btn.Enabled = true;
}
else
{
Button btn = (Button)(gridrow.FindControl("Button6"));
btn.Enabled = false;
}
}
注意这行
Note this line
GridViewRow gridrow = ((GridView)(chk.Parent)).Rows[rowNum];
这篇关于基于GridView上的复选框的启用/禁用按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文