У меня есть много динамических видов сетки, созданных на моей веб-странице. Мне нужно сохранить данные в 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"]
.
Любые предложения о том, как я могу решить эту проблему.