Click here to Skip to main content
15,908,013 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello,

I am using this code for delete row of data on checkbox checkchanged event using c# asp.net but my event did not fire.

C#
protected void ChkSelect_CheckedChanged(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GvMyCart.Rows)
        {
            // Only look for check boxes in data rows, ignoring header 
            // and footer rows
            if (row.RowType == DataControlRowType.DataRow)
            {
                if (((CheckBox)row.FindControl("ChkSelect")).Checked==false)
                {
                    Label lblprodID = (Label)GvMyCart.FindControl("lblprodID");
                    SqlConnection con = new SqlConnection(connectionString);
                    con.Open();
                    SqlCommand cmd1 = new SqlCommand("procdeleteCard", con);
                    cmd1.CommandType = CommandType.StoredProcedure;
                    cmd1.Parameters.Add("@ProdID", SqlDbType.Int).Value = Convert.ToInt32(lblprodID.Text);
                    cmd1.ExecuteNonQuery();
                    con.Close();
                    BindGrid();
                    // Do delete logic here
                }
            }
        }
    }

my checkbox in a gridview and gridview in update panel.

C#
<div class="frant-page-dumy-text">
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
        <asp:GridView ID="GvMyCart" runat="server" CssClass="dataTable"
                AutoGenerateColumns="False" RowStyle-CssClass="odd_row"
                AlternatingRowStyle-CssClass="even_row"
                onrowdatabound="GvMyCart_RowDataBound" ShowFooter="True">
            <AlternatingRowStyle CssClass="even_row" />
        <Columns>

        <asp:TemplateField HeaderStyle-CssClass="dataTableHeader">
        <ItemTemplate>
            <asp:CheckBox ID="ChkSelect" runat="server" Checked="true"
                oncheckedchanged="ChkSelect_CheckedChanged"/>
        </ItemTemplate>
            <HeaderStyle CssClass="dataTableHeader" />
        </asp:TemplateField>
<asp:TemplateField HeaderText="prodID" HeaderStyle-CssClass="dataTableHeader">
        <ItemTemplate>
            <asp:Label ID="lblprodID" runat="server" Text='<%#Eval("prodID")%>'></asp:Label>
        </ItemTemplate>
            <HeaderStyle CssClass="dataTableHeader" />
        </asp:TemplateField>

please help me how to delete particular uncheck delete row.

Thanks in Advance.

Ankit Agarwal
Website Developer
Posted
Updated 27-Dec-13 20:05pm
v3

Set AutoPostBack="True" for the CheckBox.
 
Share this answer
 
Comments
[no name] 28-Dec-13 2:40am    
When i set AutoPostBack="True", So, It's not reacting on check event my check box already checked, i want to unchecked and delete row of data.
I think the problem is due to the naming of OnCheckedChanged event. It is case sensitive.
But you have all small letters.
So it should be...

<asp:CheckBox ID="ChkSelect" runat="server" Checked="true"
OnCheckedChanged="ChkSelect_CheckedChanged"/>
Follow the First Solution and also check the
C
if(!ispostback)

{}
for the Gridview databind.
 
Share this answer
 
In code behind =>
protected void ChkSelect_CheckedChanged(object sender, EventArgs e)<br />
    {<br />
        int i=-1;<br />
        foreach (GridViewRow row in GvMyCart.Rows)<br />
        {<br />
           CheckBox ch = (CheckBox)row.FindControl("ChkSelect");<br />
            if (ch.Checked == false)<br />
            {<br />
                i += 1;<br />
                break;<br />
            }<br />
            i++;<br />
        }<br />
                    Label lblprodID = (Label)GvMyCart.Rows[i].FindControl("lblprodID");<br />
                    SqlConnection con = new SqlConnection(connectionString);<br />
                    con.Open();<br />
                    SqlCommand cmd1 = new SqlCommand("procdeleteCard", con);<br />
                    cmd1.CommandType = CommandType.StoredProcedure;<br />
                    cmd1.Parameters.Add("@ProdID", SqlDbType.Int).Value = Convert.ToInt32(lblprodID.Text);<br />
                    cmd1.ExecuteNonQuery();<br />
                    con.Close();<br />
                    BindGrid();        <br />
        }<br />
    }

In source view set checkbox Checked property as
Checked="true"
 
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