Хранение нескольких переменных ViewState в цикле в C # - PullRequest
0 голосов
/ 07 мая 2019

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

Любые предложения о том, как я могу решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...