基于GridView上的复选框的启用/禁用按钮 [英] enabled/disabled button based on checkbox on GridView

查看:78
本文介绍了基于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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆