Now I want that when a user clicks in a cell of the gridview it becomes editable and he can edit the cell values and update.
I dont wish to use the in-built edit, delete and update buttons of gridview.
How can I do that?
Loading
Know the answer? Post it — somebody with the same question will find it here.
Sign in to answer this question
It is the same account you read, post and publish with — and you will come straight back to this page.
anjali khanPosted Jul 28, 2015, 3:23 AM
hi Friend,
this is correct..but i want to be this without using data base..i did everything..now i want
if i click the cell so data is updating in a gv but it is not showing datatable..so i want to take a refresh button..
if i click on this so data should be update on a data table..
i am sending the code like this...
design page
GridView
code---
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("City") });
dt.Rows.Add(1, "Anamika", "Bangalore");
dt.Rows.Add(2, "Sunny", "Chennai");
dt.Rows.Add(3, "Monika", "Bangalore");
dt.Rows.Add(4, "Jyoti", "Chennai");
dt.Rows.Add(5, "Radhika", "Jabalpur");
dt.Rows.Add(6, "Imran", "Jammu");
dt.Rows.Add(7, "Alok", "Delhi");
dt.Rows.Add(8, "Amit", "Shamshabad");
dt.Rows.Add(9, "Neetu", "Bhopal");
dt.Rows.Add(10, "Jyoti", "Chennai");
dt.Rows.Add(11, "Radhika", "Vidisha");
dt.Rows.Add(10, "Pooja", "Pune");
gridview1.DataSource = dt;
gridview1.DataBind();
}
}
protected void gridview1_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
TextBox txt = new TextBox();
txt.Text = e.Row.Cells[i].Text;
e.Row.Cells[i].Text = "";
e.Row.Cells[i].Controls.Add(txt);
}
}
}
}
Satyapriya NayakPosted Mar 2, 2013, 12:36 PM
using System;
using System.Collections;
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.Data.SqlClient;
using System.Text;
namespace Editable_GridView_multiple_records
{
public partial class _Default : System.Web.UI.Page
{
string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
protected void btnUpdate_Click(object sender, EventArgs e)
{
StringBuilder strSql = new StringBuilder(string.Empty);
SqlConnection con = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand();
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox chkUpdate = (CheckBox)
GridView1.Rows[i].Cells[0].FindControl("chkSelect");
if (chkUpdate != null)
{
if (chkUpdate.Checked)
{
string strID = GridView1.Rows[i].Cells[1].Text;
string strName = ((TextBox)
GridView1.Rows[i].FindControl("txtName")).Text;
string strLocation = ((TextBox)
GridView1.Rows[i].FindControl("txtLocation")).Text;
string strUpdate =
"Update Details set Name = '" + strName + "',Location = '" + strLocation + "' WHERE ID ='" + strID + "'";
strSql.Append(strUpdate);
}
}
}
try
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql.ToString();
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
string errorMsg = "Error in Updation";
errorMsg += ex.Message;
throw new Exception(errorMsg);
}
finally
{
con.Close();
}
UncheckAll();
}
private void UncheckAll()
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chkUncheck = (CheckBox)
row.FindControl("chkSelect");
TextBox txtname = (TextBox)
row.FindControl("txtName");
TextBox txtlocation = (TextBox)
row.FindControl("txtLocation");
chkUncheck.Checked = false;
txtname.ReadOnly = true;
txtlocation.ReadOnly = true;
txtname.ForeColor = System.Drawing.Color.Blue;
txtlocation.ForeColor = System.Drawing.Color.Blue;
}
}
protected void chkSelect_CheckedChanged
(object sender, EventArgs e)
{
CheckBox chkTest = (CheckBox)sender;
GridViewRow grdRow = (GridViewRow)chkTest.NamingContainer;
TextBox txtname = (TextBox)grdRow.FindControl
("txtName");
TextBox txtlocation = (TextBox)grdRow.FindControl
("txtLocation");
if (chkTest.Checked)
{
txtname.ReadOnly = false;
txtlocation.ReadOnly = false;
txtname.ForeColor = System.Drawing.Color.Black;
txtlocation.ForeColor = System.Drawing.Color.Black;
}
else
{
txtname.ReadOnly = true;
txtlocation.ReadOnly = true;
txtname.ForeColor = System.Drawing.Color.Blue;
txtlocation.ForeColor = System.Drawing.Color.Blue;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
CheckState(true);
}
protected void Button2_Click(object sender, EventArgs e)
{
CheckState(false);
}
private void CheckState(bool p)
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chkcheck = (CheckBox)row.FindControl("chkSelect");
chkcheck.Checked = p;
}
}
}
}