powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по Life Cycle
11 сообщений из 11, страница 1 из 1
Вопрос по Life Cycle
    #33932586
PrettyFly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Возникла необходимость при postback'е проделать некоторое действие перед тем как сработают события с котролов (например button_Click), но после того данные, ведённые пользователем в TextBox'ы будут получены серверными контролами. Сами TextBox'ы создаются динамически (если не динамически, то всё ясно — в Page_Load их данные уже получены, а в нашем случае почему-то нет).

Вопрос: Как этого добиться? ни одно из событий страницы не помогает.
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33932625
cadet354
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, PrettyFly, Вы писали:

PF>Добрый день!

PF>Возникла необходимость при postback'е проделать некоторое действие перед тем как сработают события с котролов (например button_Click), но после того данные, ведённые пользователем в TextBox'ы будут получены серверными контролами. Сами TextBox'ы создаются динамически (если не динамически, то всё ясно — в Page_Load их данные уже получены, а в нашем случае почему-то нет).
на какой стадии добавляются контролы?
вообще-то состояние контрола пытается подняться при добавлении на страницу.
Покажи код добавления или погугли(и на этом форуме не раз подымался этот вопрос) dynamic add controls
PF>Вопрос: Как этого добиться? ни одно из событий страницы не помогает.... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33932645
PrettyFly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, cadet354, Вы писали:

C>на какой стадии добавляются контролы?

C>вообще-то состояние контрола пытается подняться при добавлении на страницу.
C>Покажи код добавления или погугли(и на этом форуме не раз подымался этот вопрос) dynamic add controls

Контролы добавляются в Page_Load(), например так:


    protected void Page_Load(object sender, EventArgs e)
    {
        tb = new TextBox();
        PlaceHolder1.Controls.Add(tb);
    }
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33932661
Sergio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Возникла необходимость при postback'е проделать некоторое действие перед тем как сработают события с котролов (например button_Click), но после того данные, ведённые пользователем в TextBox'ы будут получены серверными контролами. Сами TextBox'ы создаются динамически (если не динамически, то всё ясно — в Page_Load их данные уже получены, а в нашем случае почему-то нет).

Вопрос: Как этого добиться? ни одно из событий страницы не помогает.

Если контрол создается динамически то лучше это делать в Init. Тогда при PostBack он востанавливают свое состояние в LoadViewState, это как раз происходит между Init и Page_Load и в Page_Load можно с ним работать.
Где наша мудрость, потерянная ради знаний, где наши знания, потерянные ради информации.
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33932663
Nikolay_Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PF>Контролы добавляются в Page_Load(), например так:
PF>
PF>    protected void Page_Load(object sender, EventArgs e)
PF>    {
PF>        tb = new TextBox();
PF>        PlaceHolder1.Controls.Add(tb);
PF>    }
PF>
Контрол считывает свое состояние при добавлении его в дерево. Если PlaceHolder1 у тебя уже в дереве, помешать контролу считать свое состояние могут две вещи — разница имен родителя (или собственных) и отмена хранения данных во ViewState (свойство EnableViewState для контрола).
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33932684
PrettyFly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Контрол считывает свое состояние при добавлении его в дерево. Если PlaceHolder1 у тебя уже в дереве, помешать контролу считать свое состояние могут две вещи — разница имен родителя (или собственных) и отмена хранения данных во ViewState (свойство EnableViewState для контрола).

Имена контролов я вообще не задаю, все они создаются одним и тем же алгоритмом в одном и том же порядке. PlaceHolder1 задан декларативна в aspx-файле.

Но самое интересное, что контролы всё-тки считывают состояние, в событии button_Click значения уже загружены. Вопрос в том, что мне надо их получить до этого.
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33932688
Sergio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если контрол создается динамически то лучше это делать в Init. Тогда при PostBack он востанавливают свое состояние в LoadViewState, это как раз происходит между Init и Page_Load и в Page_Load можно с ним работать.

Извиняюсь небольшая поправочка: в данном случае наверное требуется достать значение TextBox введенное пользователем, так это происходит в Load Postback Data, а не в Load ViewState. В остальном все правильно Load Postback Data происходит там же между Init и Page_Load, сразу после Load ViewState.
Где наша мудрость, потерянная ради знаний, где наши знания, потерянные ради информации.
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33932694
PrettyFly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Sergio, Вы писали:

S>Если контрол создается динамически то лучше это делать в Init. Тогда при PostBack он востанавливают свое состояние в LoadViewState, это как раз происходит между Init и Page_Load и в Page_Load можно с ним работать.

Спасибо, вроде так работает (-:
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33932834
cadet354
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Контрол считывает свое состояние при добавлении его в дерево. Если PlaceHolder1 у тебя уже в дереве, помешать контролу считать свое состояние могут две вещи — разница имен родителя (или собственных)
а вы в этом уверены, недавно смотрел рефлектором,
получалось что от имени контрола(его id) это не зависит, view state подгружается согласно индексу.
Просто у меня возникла такая ситуация, я задавал id у контрола, но все равно падал по стандартному в этих случаях exception (Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request. )
N_C> и отмена хранения данных во ViewState (свойство EnableViewState для контрола).
именно так и сделал, хранил отдельно какой контрол был загружен, если изменился, то отключал ViewState в контроле, потом добавлял в placeholder, потом включал :)

Заранее спасибо за ответ.... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33934908
Gollum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, Sergio, Вы писали:

S>Если контрол создается динамически то лучше это делать в Init. Тогда при PostBack он востанавливают свое состояние в LoadViewState, это как раз происходит между Init и Page_Load и в Page_Load можно с ним работать.

Это уже давно не так. D частности, Controls.Add вызывает попытку поднятия ViewState добавляемого элемента управления.У нас "два" по всем наукам, но ботанику мы знаем на "пять"!
...
Рейтинг: 0 / 0
Вопрос по Life Cycle
    #33935036
Sergio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это уже давно не так. D частности, Controls.Add вызывает попытку поднятия ViewState добавляемого элемента управления.

Каюсь, не знал
! Спасибо!
"уже давно не так" - имеется ввиду ASP.NET 2.0?
И тогда вопрос. Проблема у автора была на самом деле с Load PostBackData, а не с Load ViewState. В этом случае тоже можно полагаться на "Controls.Add"?
Где наша мудрость, потерянная ради знаний, где наши знания, потерянные ради информации.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Вопрос по Life Cycle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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