July 18, 2011

Code Example for Editable(UPDATE,DELETE,CANCEL) Grid View ASP.NET

Below is the code sample for editable GridView which has (UPDATE ,DELETE and CANCEL ) functionality

ExEditGridView.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ExEditGridView.aspx.cs" Inherits="ExEditGridView" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
           <asp:GridView ID="GridView1" runat="server" onrowupdated="GridView1_RowUpdated" 
               onrowcancelingedit="GridView1_RowCancelingEdit" 
               onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating" 
               onrowdeleting="GridView1_RowDeleting" >
               <Columns>
                   <asp:CommandField ShowEditButton="True" />
                    <asp:CommandField ShowDeleteButton="True" />
               </Columns>
        </asp:GridView>
        
    </div>
    </form>
</body>
</html>


ExEditGridView.aspx.cs using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Security;
using System.Web.Security;
using System.Configuration;


public partial class ExEditGridView : System.Web.UI.Page
{
    SqlConnection connObj = new SqlConnection();
    DataSet ds = new DataSet();
    SqlDataAdapter objAdapter;
    protected void Page_Load(object sender, EventArgs e)
    {
        connObj.ConnectionString = ConfigurationManager.ConnectionStrings["dotNetTrainingConnectionString"].ToString();
        connObj.Open();

        if (!IsPostBack)
        {
            BindData();
            FillGrid();
        }
     
     
    }

    public void BindData()
    {

     SqlCommand objCommand = new SqlCommand("Select * from student", connObj);
        objAdapter = new SqlDataAdapter(objCommand);
        objAdapter.Fill(ds);

        connObj.Close();
    }

    public void FillGrid()
    {

        GridView1.DataSource = ds.Tables[0];
        GridView1.DataBind();
    }


    protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
    {
        int index = GridView1.EditIndex;
        GridViewRow row = GridView1.Rows[index];

        // Retrieve the value of the first cell
        Response .Write ( "Updated record " + row.Cells[1].Text);
    }
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        BindData();
        FillGrid();
    }
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        BindData();
       GridViewRow row = GridView1.Rows[e.RowIndex];

        DataRow drnew =ds.Tables[0].NewRow ();
       

        drnew[1] = ((TextBox)(row.Cells[3].Controls[0])).Text;
        drnew[2] = ((TextBox)(row.Cells[4].Controls[0])).Text;

        ds.Tables [0].Rows.Add (drnew );

        //Update the values.


        ds.Tables[0].TableName = "student";

        SqlCommand comm = new SqlCommand("UPDATE  student SET FirstName=@FirstName,LastName=@LastName WHERE STUDENT_id="+((TextBox)(row.Cells[2].Controls[0])).Text, connObj);
        comm.Parameters.Add("@LastName", SqlDbType.VarChar, 255, "LastName");
        comm.Parameters.Add("@FirstName", SqlDbType.VarChar, 255, "FirstName");
     


        objAdapter.InsertCommand  = comm;
        objAdapter.Update(ds, "student");


        //Reset the edit index.
        GridView1.EditIndex = -1;

   

        //Bind data to the GridView control.
        BindData();
        FillGrid();
    }
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        //Bind data to the GridView control.
        BindData();
        FillGrid();
    }
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        GridViewRow delRow = GridView1.Rows[e.RowIndex];
        int ID =int.Parse (delRow.Cells[2].Text);

        SqlCommand cmd = new SqlCommand("delete  FROM STUDENT where Student_Id =" + ID, connObj);
        cmd.ExecuteNonQuery();
        BindData();
        FillGrid();

    }
}

No comments:

Post a Comment