2 回答

TA貢獻1797條經(jīng)驗 獲得超6個贊
我不確定你的想法
var dt = new DataTable();
dt = GridView1.DataSource as DataTable;
正在執(zhí)行,但它正在將 null 分配給 dt (因為 GridView1.DataSource 為 null)
嘗試:
var dt = GridView1.DataSource as DataTable;
if (dt == null)
{
dt = new DataTable();
GridView1.DataSource = dt;
}
以后,當(dāng)您遇到空引用錯誤時,請?zhí)砑右粋€斷點并檢查該行中每個變量的值以查看哪個變量為空。

TA貢獻1828條經(jīng)驗 獲得超3個贊
嘗試使用ViewState變量而不是拉取數(shù)據(jù)源。行中可能會有奇怪的事情......
設(shè)置視圖狀態(tài).DataBind():ViewState["GV1_DT"] = dt;
Pull var dt = ViewState["GV1_DT"] as DataTable; 然后您可以通過執(zhí)行以下操作合并 null 檢查:var dt = (ViewState["GV1_DT"] as DataTable) ?? new DataTable();
完整代碼:
var dt = (ViewState["GV1_DT"] as DataTable) ?? new DataTable(); // -- PULL
if (dt.Columns.Count == 0)
{
dt.Columns.Add("Field");
dt.Columns.Add("Value");
}
DataRow dr = dt.NewRow();
dr["Field"] = DropDownList1.SelectedValue;
dr["Value"] = TextBox2.Text.Trim();
dt.Rows.Add(dr);
ViewState["GV1_DT"] = dt; // -- SET
GridView1.DataSource = dt;
GridView1.DataBind();
- 2 回答
- 0 關(guān)注
- 150 瀏覽
添加回答
舉報