2009-07-29 15 views
1

如果我將GridView(通過DataSourceID屬性)綁定到SqlDataSource並設置SelectCommand和UpdateCommand屬性,那麼一切正常。如果在Page_Load()中調用DataBind(),那麼SqlDataSource不會執行更新

但我注意到,如果我因爲某種原因也在Page_Load()內手動調用DataBind(),那麼SqlDataSource不會執行任何更新,即使SqlDataSource.Updating和SqlDataSource.Updated事件在執行時觸發單擊GridView的Update按鈕。

有人可以解釋爲什麼更新不會發生?

回答

8

這是因爲Page_Load在SqlDataSource.Updating和SqlDataSource.Updated事件觸發之前被觸發。這意味着GridView重置爲用戶編輯之前的狀態。

請查看Page Lifecycle文檔瞭解詳情。 SqlDataSource.Updating和SqlDataSource.Updated事件發生在回發事件處理部分。

+1

我熟悉Page生命週期,但我不知道DataBind()重置所有GridView的值。非常感激 – SourceC 2009-07-29 21:45:12

相關問題