Ich verwende GridView
control in asp.net 2005 c # using.
Wie kann ich eine bestimmte Zeile aus GridView
löschen?.
Ich habe den folgenden Code geschrieben. Aber es funktioniert nicht ...
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();
Sie löschen die Zeile aus der Rasteransicht, rufen dann jedoch erneut Datenbindungen auf. Dadurch wird die Rasteransicht nur in demselben Zustand aktualisiert, in dem sich die ursprüngliche Datenquelle befindet.
Entfernen Sie es entweder aus der Datenquelle und dann aus datenbank oder datenbank und entfernen Sie es aus der Rasteransicht, ohne es erneut zu ändern.
Sie löschen die Zeile aus der Rasteransicht und binden sie dann erneut an die Datenquelle (die die Zeile noch enthält). Löschen Sie entweder die Zeile aus der Datenquelle oder binden Sie die Rasteransicht danach nicht erneut.
Die Standardantwort lautet, das Element aus der Sammlung zu entfernen, die Sie als DataSource der GridView verwenden.
Wenn diese Option unerwünscht ist, empfehle ich Ihnen, das Ereignis RowDataBound
der GridView zu verwenden, um die (e.Row
) Visible
-Eigenschaft der Zeile selektiv auf false festzulegen.
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();
}
}
Meine Lösung:
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();
}
hi wie lösche ich aus datagridview
1.Anfrage nach ID löschen lassen
2.art
tabletableadaptor.delete
query(datagridwiewX1.selectedrows[0].cell[0].value.tostring);
Löschen Sie die Zeile aus der Tabelle dtPrf_Mstr und nicht aus der Rasteransicht.