Deleted rows reappear in databale and gridview

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Suraj p
    New Member
    • Mar 2012
    • 2

    Deleted rows reappear in databale and gridview

    Hi!!!
    following is complete code for adding and deleting rows from grid view.
    Code:
    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Windows.Forms;
    
    public partial class _Default : System.Web.UI.Page 
    {
        public static DataTable dt;
        public static DataTable dt1;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                dt = new DataTable();
    
                DataColumn dc = new DataColumn("EName");
    
                dt.Columns.Add(dc);
    
                DataColumn dc1 = new DataColumn("EID");
    
                dt.Columns.Add(dc1);
    
            } 
       }
        protected void Button1_Click(object sender, EventArgs e)
        {
    
            GridView1.DataSource = dt;
            GridView1.DataBind();
    
    
            if (ViewState["myTable"] != null)
            {
                dt = ViewState["myTable"] as DataTable;
            }
            ViewState["myTable"] = dt;
            DataRow dr = dt.NewRow();
            dr["EName"] = TextBox1.Text.ToString();
            dr["EID"] = TextBox1.Text.ToString();
            dt.Rows.Add(dr);
            //dt.Rows.Remove(GridView1.DataKey.)
           // GridViewDeleteEventHandler 
            dt1 = (DataTable)ViewState["myTable"];
            GridView1.DataSource = dt1;
          //  GridView1.DeleteRow(e.RowIndex);
            GridView1.DataBind();
            
        }
    
    
    
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
    
        }
    
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            dt1.Rows.RemoveAt(e.RowIndex);
            GridView1.DataSource = dt1;
            GridView1.DataBind();
        }
    }

    But after deleting rows from grid view it reappears.
    Kindly reply.
    Last edited by Frinavale; Mar 20 '12, 06:46 PM. Reason: Added code tags.
  • Frinavale
    Recognized Expert Expert
    • Oct 2006
    • 9749

    #2
    You deleted the row from dt1 but then didn't store dt1 back into your ViewState...so the next time you retrieve dt1 from ViewState it will still contain the row.

    Comment

    Working...