簡體   English   中英

刪除動態生成的gridview中的特定行

[英]Delete specific row in dynamically generated gridview

我有一個小的GridView,可以容納某些物品。 這是在用戶單擊項目后生成gridview的代碼:

 if (grdCarritoAddons.Rows.Count == 0)
        {

            dt.Columns.Add(new DataColumn("Name", typeof(System.String)));
            dt.Columns.Add(new DataColumn("Price", typeof(System.String)));
        }
        else
        {
            dt = HttpContext.Current.Session["DataTable"] as DataTable;
        }
        Session["DataTable"] = dt;

        DataRow dr1 = dt.NewRow();
        dr1[0] = AddonName.ToString();
        dr1[1] = Convert.ToDecimal(PriceAddon);
        dt.Rows.Add(dr1);
        grdCarritoAddons.DataSource = dt;
        grdCarritoAddons.DataBind();

    }

現在,我需要用戶能夠選擇一項並刪除特定項。 在ASPX頁面中,我已經添加了Delete命令,並在代碼中和GridView屬性上創建了一個空的RowDeleting方法。 它沒有用,我想出了一個可以解決但不是我需要做的解決方案。 基本上,它會擦除​​整個DataTable。

            //grdCarritoAddons.DataSource = dt;
        //grdCarritoAddons.DataBind();
        //Session["DataTable"] = dt;
        //Session.Remove("Total");

我嘗試了這個:

grdCarritoAddons.Rows.RemoveAt(grdCarritoAddons.SelectedRows[0].Index);

但是不行。 在ASP中不起作用。 謝謝你的幫助 :)

當前代碼:

            dt = HttpContext.Current.Session["DataTable"] as DataTable;
            dt.Rows.RemoveAt(grdCarritoAddons.SelectedRow.RowIndex);

但是它拋出的Object引用未設置為對象異常的實例。 如果我放置一個IF來檢查該行是否為空,它將根本不會執行...但是數據顯然不是空的。

這是錯誤:“ System.Web.UI.WebControls.GridViewRowCollection”不包含“ RemoveAt”的定義,並且沒有擴展方法“ RemoveAt”接受類型為“ System.Web.UI.WebControls.GridViewRowCollection”的第一個參數被發現

是的,如您在此處看到的那樣,此方法不存在。 您應該改為修改數據源,然后再對網格進行數據綁定。 DataRowCollection具有RemoveAt方法

dt.Rows.RemoveAt(grdCarritoAddons.SelectedRow.RowIndex);
grdCarritoAddons.DataSource = dt;
grdCarritoAddons.DataBind();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM