Установить переменную viewstate в конце жизненного цикла страницы - PullRequest
1 голос
/ 07 апреля 2011

Что я пытаюсь сделать, это установить переменную ViewState в конце жизненного цикла страницы: у меня полностью загружена страница asp.net - связь с вызовами AJAX с клиентским JavaScript ... когда вызов ajax извыполняется клиентский JavaScript, выполняются некоторые методы C # из серверного кода.Во время этого выполнения я хочу установить переменную ViewState и использовать ее при следующей обратной передаче, но, очевидно, переменная ViewState не сохраняется - поскольку страница полностью загружена - вся логика выполняется в конце жизненного цикла страницы.

Я пытался явно вызывать эти методы до и после установки переменной ViewState:

       this.TrackViewState();
       if (startAddr != "")
       {
           ViewState["startAddress"] = startAddr;
       }
       this.SaveViewState();

Но безуспешно ... при следующей обратной передаче ViewState["startAddress"] равно нулю.

Любые предложения, если вышеописанная функциональность может быть достигнута ?!Спасибо!

Ответы [ 3 ]

2 голосов
/ 07 апреля 2011

Вы можете переопределить метод SaveViewState страницы, чтобы увидеть, вызывается ли она перед вашим кодом. SaveViewState - это самая последняя точка, где вы можете хранить объекты в ViewState, которые не являются частью иерархии элементов управления.

protected override object SaveViewState()
{
    if (startAddr != "")
    {
        ViewState["startAddress"] = startAddr;
    }
    return base.SaveViewState();
}
0 голосов
/ 07 апреля 2011

Насколько я знаю, Вам не нужно хранить переменную в viewstate, если значение ur получено с веб-страницы, как вы используете Ajax для обратного вызова (не уверен, что с помощью CallBack или PageMethod), Вы можете получить значение без сохранения его в viewstate. juz сохраняет значение в переменной JS .

дайте мне знать, если есть какие-либо предложения или путаница?

Надеюсь, что это работает!

0 голосов
/ 07 апреля 2011

Вы не должны вызывать напрямую метод SaveViewState.

Проверьте, установлено ли для параметра EnableViewState значение true на вашей странице. И проверьте, действительно ли ViewState назначен.

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