Click here to Skip to main content
15,892,059 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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?

XML
<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>



thanks inadvance
Posted
Updated 24-Nov-11 2:18am
v4
Comments
LanFanNinja 24-Nov-11 9:06am    
Check Solution 2

use this C# code on check changed event..

C#
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...
 
Share this answer
 
v2
Comments
pradeep manne 24-Nov-11 7:25am    
hi,
thanks for ur reply
GridViewRow gridrow = (GridViewRow)(chk.parent.parent);
giving an error at that point
cannot implicitly convert system.web.ui.webcontrol.gridview toconvert system.web.ui.webcontrol.gridviewrow
Karthik Harve 24-Nov-11 7:34am    
try this...
GridViewRow gridrow = (GridViewRow)(chk.parent);
pradeep manne 24-Nov-11 8:11am    
hi,
thanks for ur quick reply
getting same error after using
GridViewRow gridrow = (GridViewRow)(chk.parent);
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)
C#
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
C#
GridViewRow gridrow = ((GridView)(chk.Parent)).Rows[rowNum];
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900