2 回答
TA贡献1797条经验 获得超6个赞
我不确定你的想法
var dt = new DataTable();
dt = GridView1.DataSource as DataTable;
正在执行,但它正在将 null 分配给 dt (因为 GridView1.DataSource 为 null)
尝试:
var dt = GridView1.DataSource as DataTable;
if (dt == null)
{
dt = new DataTable();
GridView1.DataSource = dt;
}
以后,当您遇到空引用错误时,请添加一个断点并检查该行中每个变量的值以查看哪个变量为空。
TA贡献1828条经验 获得超3个赞
尝试使用ViewState变量而不是拉取数据源。行中可能会有奇怪的事情......
设置视图状态.DataBind():ViewState["GV1_DT"] = dt;
Pull var dt = ViewState["GV1_DT"] as DataTable; 然后您可以通过执行以下操作合并 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 关注
- 100 浏览
添加回答
举报