Если DataBind () вызывается внутри Page_Load (), то SqlDataSource не выполняет обновления.

Если я привяжу GridView (через атрибут DataSourceID) к SqlDataSource и установлю атрибуты SelectCommand и UpdateCommand, тогда все будет работать отлично.

Но я заметил, что если я по какой-либо причине также вручную вызываю DataBind () внутри Page_Load (), то SqlDataSource не выполняет никаких обновлений, даже если события SqlDataSource.Updating и SqlDataSource.Updated срабатывают, когда кнопка обновления GridView находится в щелкнул.

Может кто-нибудь объяснить, почему обновления не происходят?


person SourceC    schedule 29.07.2009    source источник


Ответы (1)


Это потому, что Page_Load запускается ДО запуска событий SqlDataSource.Updating и SqlDataSource.Updated. Это означает, что GridView сбрасывается до того, что было до редактирования пользователем.

Дополнительные сведения см. В документации по жизненному циклу страницы. События SqlDataSource.Updating и SqlDataSource.Updated происходят в разделе Postback Event Handling.

person David    schedule 29.07.2009
comment
Я знаком с жизненным циклом страницы, но не знал, что DataBind () сбрасывает все значения GridView. Очень признателен - person SourceC; 30.07.2009