【问题标题】:How to delete a row from GridView?如何从 GridView 中删除一行?
【发布时间】:2010-10-10 04:15:48
【问题描述】:

我在 2005 中使用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();

【问题讨论】:

  • @Kartik:如果你还没有,也请支持 orthod0ks 的回答。它本质上说的和我做的一模一样。

标签: asp.net c# c# asp.net gridview delete-row


【解决方案1】:

请试试这个代码.....

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

【讨论】:

    【解决方案2】:

    你好如何从 datagridview 中删除

    1.使查询按id删除
    2.输入

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

    【讨论】:

      【解决方案3】:

      我的解决方案:

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

      【讨论】:

        【解决方案4】:
        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();
            }
        }
        

        【讨论】:

          【解决方案5】:

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

          要么将其从数据源中删除,然后进行数据绑定,要么进行数据绑定并将其从网格视图中删除而不重新绑定。

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

              默认答案是从您用作 GridView 的数据源的任何集合中删除该项目。

              如果不需要该选项,那么我建议您使用 GridView 的 RowDataBound 事件选择性地将行的 (e.Row) Visible 属性设置为 false。

              【讨论】:

                【解决方案8】:

                从表 dtPrf_Mstr 而不是从网格视图中删除行。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2012-10-20
                  • 2016-05-25
                  • 2015-02-27
                  • 2016-01-30
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多