C # Viewstate - не могу получить таблицу

1

У меня есть datatable содержащие пути к файлам, которые я передаю через viewstate (ссылаясь, через ссылку, индекс в этой таблице), желая затем использовать путь из таблицы, чтобы построить HTTP filetransfer. (3 столбца, имя, путь и индекс)

Я не могу успешно восстановить данные, сохраненные в viewstate;

   ViewState["varFiles"] = filedata;

(Когда страница изначально построена, то после обратной передачи :)

if (!IsPostBack) { SetupSession(); newpopfiles(); }
    else { { if (ViewState["varFiles"] != null) { DataTable filedata = new DataTable(); filedata = (DataTable)Session["varFiles"]; } } }

Из того, что я понимаю, следует отменить filedata как таблицу в той же форме, что и до обратной передачи. Это верно?

При последующем обращении к таблице я получаю исключение с нулевой ссылкой. Есть идеи?

Большое спасибо, Дэн

  • 0
    Session ! = ViewState . (Проверьте код, почему это наблюдение имеет смысл.)
  • 0
    почему вы используете сеанс, если datatable хранится в viewstate
Показать ещё 3 комментария
Теги:
postback
viewstate

1 ответ

1
Лучший ответ

Похоже, что вы почти там, просто нужно быть немного совместимым с тем же механизмом хранения :)

Бит для сохранения DataTable в вашем сеансе, возможно, в OnInit() или PageLoad():

DataTable myDataTable = //... fill it in somehow
Session["varFiles"] = myDataTable;

Бит для чтения DataTable после обратной передачи:

if (!IsPostBack)
{
    SetupSession();
    newpopfiles();
}
else
{
    DataTable filedata = Session["varFiles"] as DataTable;
    if (filedata != null)
    {
        //... do something
    }
}
  • 0
    Отлично - это решило :) спасибо.
  • 0
    Это значительно сложнее, чем Excel VBA ...
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню