web-dev-qa-db-fra.com

Comment supprimer une ligne de GridView?

J'utilise le contrôle GridView dans asp.net 2005 c # using.

Comment puis-je supprimer une ligne particulière de GridView.

J'ai écrit le code suivant. Mais ça ne marche pas ...

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

Vous supprimez la ligne de la vue en grille, mais vous appelez de nouveau ensuite databind, ce qui actualise simplement la vue en grille dans le même état que la source de données d'origine.

Supprimez-le de la source de données puis databind, ou databind et supprimez-le de la vue en grille sans redatabinding.

18
TheTXI

Vous supprimez la ligne de la vue en grille, puis vous la reconnectez à la source de données (qui contient toujours la ligne). Supprimez la ligne de la source de données ou ne réassociez pas la vue grille ultérieurement.

12
atfergs

La réponse par défaut consiste à supprimer l'élément de la collection que vous utilisez en tant que source de données GridView.

Si cette option n'est pas souhaitable, nous vous recommandons d'utiliser l'événement RowDataBound de GridView pour définir de manière sélective la propriété false de la ligne (e.Row) Visible.

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

Ma solution:

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

salut comment supprimer de datagridview

1. effacer la requête par identifiant
2.type 

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

Supprimez la ligne de la table dtPrf_Mstr plutôt que de la vue de grille.

0
Welbog