web-dev-qa-db-de.com

Wie lösche ich eine Zeile aus GridView?

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();
10
Kartik

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.

18
TheTXI

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.

12
atfergs

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.

4
Ken Browning
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();
    }
}
2
JOEL LYTE

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();
}
1
Paramita

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);
0
mahdi

Löschen Sie die Zeile aus der Tabelle dtPrf_Mstr und nicht aus der Rasteransicht.

0
Welbog