Thursday, December 15, 2005

Edit Data in DataGrid

It is specially for beginners in .net.
In User.aspx
asp:datagrid id="DataGrid1" runat="server" DataKeyField="SrNo" OnEditCommand="EditCmd" OnUpdateCommand="UpdateCmd"
OnCancelCommand="CancelCmd" AutoGenerateColumns="False">
Columns>
asp:TemplateColumn>
ItemTemplate>
asp:Label ID = "lblSrNo" Runat="server" text='<%#DataBinder.Eval(Container.DataItem,"SrNo")%>'>
/asp:Label>
asp:Label ID = "lblName" Runat="server" text='<%#DataBinder.Eval(Container.DataItem,"Name")%>'>
/asp:Label>
/ItemTemplate>
EditItemTemplate>
asp:TextBox ID="txtSrNo" Runat="server" text = '<%#DataBinder.Eval(Container.DataItem,"SrNo")%>'>
/asp:TextBox>
asp:TextBox ID ="txtName" Runat="server" text ='<%#DataBinder.Eval(Container.DataItem,"Name")%>'>
/asp:TextBox>
/EditItemTemplate>
/asp:TemplateColumn>
asp:EditCommandColumn ButtonType="PushButton" CancelText="Cancel" UpdateText="Update" EditText="Change">
/Columns>
/asp:datagrid>

In User.aspx.cs


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.Configuration;
namespace Prashant
{
///
/// Summary description for User.
///

public class User : BasePage
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
{
if(IsPostBack)return;
string id = this.RequestValue("id");
BindGrid();
}
private void BindGrid()
{
string connstr = ConfigurationSettings.AppSettings["connstring"];
//string serverPath = Server.MapPath("");
OleDbConnection oConn = new OleDbConnection(connstr);
try
{
oConn.Open();
OleDbCommand oCmd = new OleDbCommand("Select * from tbl_User",oConn);
OleDbDataReader reader = oCmd.ExecuteReader();
DataGrid1.DataSource = reader;
DataGrid1.DataBind();
}
catch(Exception ex)
{
string errMsg = ex.Message;
}
finally
{
oConn.Close();
}
}
protected void EditCmd(object sender, DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = e.Item.ItemIndex;
BindGrid();
}
protected void CancelCmd(object sender,DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex = -1;
BindGrid();
}
protected void UpdateCmd(object sender,DataGridCommandEventArgs e)
{
int srno = (int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string name = ((TextBox)e.Item.FindControl("txtName")).Text;
UpdateName(srno,name);
DataGrid1.EditItemIndex = -1;
BindGrid();
}
private void UpdateName(int srno,string Updatedname)
{
string conn = ConfigurationSettings.AppSettings["connstring"].ToString();
OleDbConnection oConn = new OleDbConnection(conn);
string updatestmt = "Update tbl_User set Name ='" + Updatedname + "'where srno=" + srno;
oConn.Open();
OleDbCommand oComm = new OleDbCommand(updatestmt,oConn);
oComm.ExecuteNonQuery();
oConn.Close();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}


------------------------------------------------------------------------------------------
Hope this will help you.

No comments: