[英]How to delete a row from 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 的数据源的任何集合中删除该项目。
如果该选项不受欢迎,那么我建议您使用 GridView 的RowDataBound
事件有选择地将行 ( 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();
}
}
我的解决方案:
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();
}
嗨,如何从数据网格视图中删除
1.通过id查询删除
2.类型
tabletableadaptor.delete
query(datagridwiewX1.selectedrows[0].cell[0].value.tostring);
从表 dtPrf_Mstr 而不是从网格视图中删除行。
请试试这个代码.....
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.Rows.Remove(GVGLCode.Rows[i]);
}
GVGLCode.DataBind();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.