我的网页中生成了许多动态的gridview。我需要将数据表保存在ViewState中以在页面的其他地方使用。我将表绑定到gridview中,如下所示:
DataTable data = new DataTable();
data.Columns.Add("Technical Name");
data.Columns.Add("Field Name");
for (int i = 0; i < Tables.Count + 1; i++)
{
if (Tables.Contains(TableName))
{
int index = Tables.IndexOf(TableName);
a = index + 1;
GridView gridview = (GridView)control.FindControl("gv_table" + a);
DataRow datarow = data.NewRow();
datarow["Technical Name"] = LogName;
datarow["Field Name"] = FieldName;
data.Rows.Add(datarow);
}
else
{
if (a != 0)
{
((GridView)control.FindControl("gv_conditiontable" + a)).DataSource = data;
((GridView)control.FindControl("gv_conditiontable" + a)).DataBind();
ViewState["grid"+a] = data;
DataTable dt = (DataTable)ViewState["grid" + a];
}
data.Clear();
Tables.Add(TableName);
ViewState["Tabletemp"] = Tables;
}
我将每个数据表添加到循环中的viewstate
ViewState["grid"+a] = data;
但是当我检索ViewState值时
DataTable dt = (DataTable)ViewState["grid2"];
我总是得到最后添加的数据表,而不是存储在ViewState["grid2"]
中的数据表。
关于如何解决此问题的任何建议。