Asp.net обратная связь oninit - PullRequest
       21

Asp.net обратная связь oninit

0 голосов
/ 19 августа 2010

У меня есть сетка с одним TemplateField, который является флажком и говорит 2 связанных поля.

В Page_Load при обратной передаче я перепривязываю сетку с сохраненным в сеансе кэшированным набором данных. Если пользователь установит флажок на сетке, при обратной передаче я могу выполнить итерацию на сетке и получить эти проверенные значения, все работает нормально.

Если я перенесу код привязки сетки при обратной передаче в OnInit вместо Page_Load, тогда я потеряю данные, отмеченные флажком пользователя. Зачем? Должны ли данные обратной передачи не перекрывать верхнюю часть сетки после oninit?

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

ПРИМЕЧАНИЕ: viewstate отключено на моей сетке, я привязываю данные (сохраненные в сеансе) при каждой обратной передаче. Также что-то странное, когда я использую OnInit, при каждой обратной передаче я получаю первую страницу сетки, независимо от того, на какой странице была запущена обратная передача. Спасибо.

Ответы [ 3 ]

1 голос
/ 19 августа 2010

Я считаю, что это потому, что состояние представления еще не загружено в событии OnInit. Проверьте это http://msdn.microsoft.com/en-us/library/ms178472.aspx для получения дополнительной информации о жизненном цикле страницы asp.net. Надеюсь, это поможет !!

0 голосов
/ 20 августа 2010

Кто-то ответил на форуме asp.net.Вот ссылка

http://forums.asp.net/p/1592192/4036031.aspx#4036031

0 голосов
/ 19 августа 2010

Подобно LoadViewState, ProcessPostData - это то, что происходит после OnInit, но до Page_Load.Я предполагаю, что значения флажков отправляются обратно на сервер в виде данных Post.Таким образом, я подозреваю, что проблема такая же, как если бы ViewState был включен: OnInit слишком рано - опубликованные данные (значения флажков) еще не были применены к вашим элементам управления.

У меня нет большого опыта работы соперация viewstate-disabled, поэтому приношу свои извинения, если в этом ответе отсутствуют некоторые нюансы.

...