Как удалить строку из GridView?

Я использую элемент управления GridView в asp.net 2005 c # using.

Как удалить определенную строку из GridView .

Я написал следующий код. Но это не работает …

 DataRow dr = dtPrf_Mstr.NewRow(); dtPrf_Mstr.Rows.Add(dr); GVGLCode.DataSource = dtPrf_Mstr; GVGLCode.DataBind(); int iCount = GVGLCode.Rows.Count; for (int i = 0; i <= iCount; i++) { GVGLCode.DeleteRow(i); } GVGLCode.DataBind(); - DataRow dr = dtPrf_Mstr.NewRow(); dtPrf_Mstr.Rows.Add(dr); GVGLCode.DataSource = dtPrf_Mstr; GVGLCode.DataBind(); int iCount = GVGLCode.Rows.Count; for (int i = 0; i <= iCount; i++) { GVGLCode.DeleteRow(i); } GVGLCode.DataBind(); 

Вы удаляете строку из gridview, но затем переходите и снова вызываете databind, который просто обновляет gridview до того же состояния, в котором находится исходный источник данных.

Либо удалите его из источника данных, а затем databind или databind и удалите его из gridview без повторной привязки.

Вы удаляете строку из gridview, а затем переписываете ее на источник данных (который все еще содержит строку). Либо удалите строку из источника данных, либо не перегруппируйте сетку.

Ответ по умолчанию – удалить элемент из любой коллекции, которую вы используете в качестве источника данных GridView.

Если этот параметр нежелателен, я рекомендую вам использовать событие RowDataBound от GridView, чтобы выборочно установить для e.Row строки ( e.Row ) Visible значение false.

 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.Data.SqlClient; public partial class Default3 : System.Web.UI.Page { DataTable dt = new DataTable(); DataSet Gds = new DataSet(); // DataColumn colm1 = new DataColumn(); //DataColumn colm2 = new DataColumn(); protected void Page_Load(object sender, EventArgs e) { dt.Columns.Add("ExpId", typeof(int)); dt.Columns.Add("FirstName", typeof(string)); } protected void BtnLoad_Click(object sender, EventArgs e) { // gvLoad is Grid View Id if (gvLoad.Rows.Count == 0) { Gds.Tables.Add(tblLoad()); } else { dt = tblGridRow(); dt.Rows.Add(tblRow()); Gds.Tables.Add(dt); } gvLoad.DataSource = Gds; gvLoad.DataBind(); } protected DataTable tblLoad() { dt.Rows.Add(tblRow()); return dt; } protected DataRow tblRow() { DataRow dr; dr = dt.NewRow(); dr["Exp Id"] = Convert.ToInt16(txtId.Text); dr["First Name"] = Convert.ToString(txtName.Text); return dr; } protected DataTable tblGridRow() { DataRow dr; for (int i = 0; i < gvLoad.Rows.Count; i++) { if (gvLoad.Rows[i].Cells[0].Text != null) { dr = dt.NewRow(); dr["Exp Id"] = gvLoad.Rows[i].Cells[1].Text.ToString(); dr["First Name"] = gvLoad.Rows[i].Cells[2].Text.ToString(); dt.Rows.Add(dr); } } return dt; } protected void btn_Click(object sender, EventArgs e) { dt = tblGridRow(); dt.Rows.Add(tblRow()); Session["tab"] = dt; // Response.Redirect("Default.aspx"); } protected void gvLoad_RowDeleting(object sender, GridViewDeleteEventArgs e) { dt = tblGridRow(); dt.Rows.RemoveAt(e.RowIndex); gvLoad.DataSource = dt; gvLoad.DataBind(); } } - 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.Data.SqlClient; public partial class Default3 : System.Web.UI.Page { DataTable dt = new DataTable(); DataSet Gds = new DataSet(); // DataColumn colm1 = new DataColumn(); //DataColumn colm2 = new DataColumn(); protected void Page_Load(object sender, EventArgs e) { dt.Columns.Add("ExpId", typeof(int)); dt.Columns.Add("FirstName", typeof(string)); } protected void BtnLoad_Click(object sender, EventArgs e) { // gvLoad is Grid View Id if (gvLoad.Rows.Count == 0) { Gds.Tables.Add(tblLoad()); } else { dt = tblGridRow(); dt.Rows.Add(tblRow()); Gds.Tables.Add(dt); } gvLoad.DataSource = Gds; gvLoad.DataBind(); } protected DataTable tblLoad() { dt.Rows.Add(tblRow()); return dt; } protected DataRow tblRow() { DataRow dr; dr = dt.NewRow(); dr["Exp Id"] = Convert.ToInt16(txtId.Text); dr["First Name"] = Convert.ToString(txtName.Text); return dr; } protected DataTable tblGridRow() { DataRow dr; for (int i = 0; i < gvLoad.Rows.Count; i++) { if (gvLoad.Rows[i].Cells[0].Text != null) { dr = dt.NewRow(); dr["Exp Id"] = gvLoad.Rows[i].Cells[1].Text.ToString(); dr["First Name"] = gvLoad.Rows[i].Cells[2].Text.ToString(); dt.Rows.Add(dr); } } return dt; } protected void btn_Click(object sender, EventArgs e) { dt = tblGridRow(); dt.Rows.Add(tblRow()); Session["tab"] = dt; // Response.Redirect("Default.aspx"); } protected void gvLoad_RowDeleting(object sender, GridViewDeleteEventArgs e) { dt = tblGridRow(); dt.Rows.RemoveAt(e.RowIndex); gvLoad.DataSource = dt; gvLoad.DataBind(); } } 

Мое решение:

 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { myobj.myconnection();// connection created string mystr = "Delete table_name where water_id= '" + GridView1.DataKeys[e.RowIndex].Value + "'";// query sqlcmd = new SqlCommand(mystr, myobj.mycon); sqlcmd.ExecuteNonQuery(); fillgrid(); } 

Удалите строку из таблицы dtPrf_Mstr, а не из вида сетки.

Привет, как удалить из datagridview

1. удалить запрос по идентификатору
2.Type

 tabletableadaptor.delete query(datagridwiewX1.selectedrows[0].cell[0].value.tostring); 
Давайте будем гением компьютера.