Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как отображать изменения при первом проходе обработчика? / 4 сообщений из 4, страница 1 из 1
05.06.2006, 17:27
    #33773014
AlexG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отображать изменения при первом проходе обработчика?
Столкнулся со следующей проблемой. Начну по порядку.
Есть некий порядок обработки евентов:
1) загрузка страницы — Load
2) обработка евентов кнопок и пр. элементов управления
Это меня не совсем устраивает в следующем: мне нужно заполнить из БД список и отобразить его при нажатии по кнопке, например "Обновить".
Алгоритм такой (схема):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Page_Load() {

 if(!this.IsPostBack) {
  this.ViewState["MyList"] = GetDbList([params]) as IList<string>;
 }
 ComboBox.DataSource = this.ViewState["MyList"];
 ComboBox.DataBind();

}

ButtonRefreshHandler(...) {

 this.ViewState["MyList"] = GetDbList([params]) as IList<string>;

}
При таком алгоритме изменения отображаются только после второго нажатия по кнопке "Обновить".
Допустим я в обработчик кнопки внесу следующий код:
Код: plaintext
1.
2.
 ComboBox.DataSource = this.ViewState["MyList"];
 ComboBox.DataBind();
Но в этом случае получится, что он будет вызван дважды: в Load и в евенте, что плохо.

Итого: Мне нужно, чтобы изменения отображались при первом же нажатии по кнопке. Как этого добиться?
...
Рейтинг: 0 / 0
06.06.2006, 02:16
    #33773705
vbnet2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отображать изменения при первом проходе обработчика?
Это ж и есть самая главная проблема ASP2 - строгий и совсем неудобный нам порядок событий. Начинаю завидовать PHP-программерам, тупо вычитывающим форму по тегам.
Простейшее решение - перенести твое обновление в PreRender. Я так и делал до поры до времени, но вот сейчас этого мне мало.
Сейчас пришел к необходимости в момент PreRender вообще сбросить все, почистить кэш и ЗАНОВО сформировать страничку по новым сессионным параметрам, которые мне стали известны ПОСЛЕ отработки всех состояний от всех контролов.
Пока не знаю как это сделать - http://www.sql.ru/forum/actualthread.aspx?tid=301347
...
Рейтинг: 0 / 0
06.06.2006, 10:54
    #33774064
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отображать изменения при первом проходе обработчика?
> Это ж и есть самая главная проблема ASP2 - строгий и совсем неудобный нам порядок событий. Начинаю завидовать PHP-программерам,
>тупо вычитывающим форму по тегам.

Ни кто не отменял Request.Form["имя:контрола"]

по сабжу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Page_Load() {
 if(!this.IsPostBack) {
  this.ViewState["MyList"] = GetDbList([params]) as IList<string>;
  ComboBox.DataSource = this.ViewState["MyList"];
  ComboBox.DataBind();
 }
 }

ButtonRefreshHandler(...) {
 this.ViewState["MyList"] = GetDbList([params]) as IList<string>;
 ComboBox.DataSource = this.ViewState["MyList"];
 ComboBox.DataBind();

}
как-то так...


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
06.06.2006, 14:30
    #33774928
AlexG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отображать изменения при первом проходе обработчика?
В таком случае, если я использую MultiView и переключаюсь между View список в ComboBox будет потерян. Т.е. решение не подходит, к сожалению.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как отображать изменения при первом проходе обработчика? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]