如何从GridView中删除一行?

我在asp.net 2005 c#中使用GridView控件。

如何从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(); 

您正在从gridview中删除该行,但您将再次调用databind,这只是将gridview刷新到原始数据源所在的状态。

从数据源中删除它,然后数据绑定,或数据绑定,并从gridview中删除它,而不进行重新数据绑定。

您将从gridview中删除该行,然后将其重新绑定到数据源(仍包含该行)。 从数据源中删除行,或者之后不重新绑定gridview。

默认答案是从您使用的任何集合中删除项目作为GridView的DataSource。

如果该选项不合适,那么我建议您使用GridView的RowDataBound事件有选择地将行的( e.RowVisible属性设置为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(); } } 

我的解决方案

 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.make查询按id删除
2,型号

 tabletableadaptor.delete query(datagridwiewX1.selectedrows[0].cell[0].value.tostring);