Аннотация:
Глава из книги "Microsoft ASP.NET 2.0 с примерами на C# 2005 для профессионалов".
"Ни одна среда для разработки Web-приложений, какой бы усовершенствованной она не была, не может изменить тот факт, что HTTP является протоколом, который не сохраняет никакой информации о состоянии. После первого Web-запроса, клиент отключается от сервера, и механизм ASP.NET удаляет/очищает объекты страницы. Такая архитектура позволяет Web-приложениям обслуживать одновременно тысячи запросов, не истощая полностью ресурсы памяти сервера. Недостатком является то, что код должен использовать другие технологии для хранения информации между Web-запросами и ее извлечения при необходимости.
В этой главе мы покажем, как можно решить эту задачу, сохраняя информацию на стороне сервера и на стороне клиента с помощью различных технологий, а также как можно передавать информацию с одной Web-страницы на другую."
Увидел строчку "Состояние просмотра" (это так viewState перевели) дальше читать не стал. Мне легче на языке оригинала читать чем разбирать эту тарабарщину.
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, Мэтью Мак-Дональд, Марио Шпушта, Вы писали:
ММД>>Материал предоставлен издательством Вильямс.
G>Увидел строчку "Состояние просмотра" (это так viewState перевели) дальше читать не стал. Мне легче на языке оригинала читать чем разбирать эту тарабарщину.
Было бы интересно узнать каким образом ViewState пропихивается на саму форму ввиде скрытых полей — кто их туда суёт — есть предположение что яваскрипт — но что за процесс.
Re[3]: Управление состоянием
От:
Аноним
Дата:
06.11.08 22:39
Оценка:
Здравствуйте, MasterMind, Вы писали:
MM>Было бы интересно узнать каким образом ViewState пропихивается на саму форму ввиде скрытых полей — кто их туда суёт — есть предположение что яваскрипт — но что за процесс.
Никто не сует просто генерится нужный HTML с уже подсунутыми значениями на сервере и возвращается клиенту
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, MasterMind, Вы писали:
MM>>Было бы интересно узнать каким образом ViewState пропихивается на саму форму ввиде скрытых полей — кто их туда суёт — есть предположение что яваскрипт — но что за процесс.
А>Никто не сует просто генерится нужный HTML с уже подсунутыми значениями на сервере и возвращается клиенту
а этот момент генерации когда сами вьюстейты пропихиваются можно как почупать? не теми стандартными вещаит в духе словаря или свойствами котнролов — а именно моментом генерации.
Re[5]: Управление состоянием
От:
Аноним
Дата:
07.11.08 00:11
Оценка:
Здравствуйте, MasterMind, Вы писали:
MM>а этот момент генерации когда сами вьюстейты пропихиваются можно как почупать? не теми стандартными вещаит в духе словаря или свойствами котнролов — а именно моментом генерации.
Можна через LoadViewState / SaveViewState. Ну или можна перехватывать сам результат Render-а и делать там свои замены.
Здравствуйте, MasterMind, Вы писали:
MM>>>Было бы интересно узнать каким образом ViewState пропихивается на саму форму ввиде скрытых полей — кто их туда суёт — есть предположение что яваскрипт — но что за процесс.
А>>Никто не сует просто генерится нужный HTML с уже подсунутыми значениями на сервере и возвращается клиенту
MM>а этот момент генерации когда сами вьюстейты пропихиваются можно как почупать? не теми стандартными вещаит в духе словаря или свойствами котнролов — а именно моментом генерации.
Есть только один способ решить эту проблему. Хотя информация о выбранном значении утрачивается, само выбранное пользователем значение все-таки сохраняется в коллекции Request.Forms (это коллекция опубликованных значений, которая существует для обратной совместимости со ASP-страницами). А значит мы можем выполнить поиск выбранного пользователем значения с помощью имени элемента управления и воспользоваться следующим кодом, чтобы восстановить соответствующий выбранный индекс:
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 1000; i++)
{
lstBig.Items.Add(i.ToString());
}
if (Page.IsPostBack)
{
lstBig.SelectedItem.Text = Request.Form["lstBig"];
}
}
Автор пишет о ViewState не понимая как он работате