2009-08-24 37 views
0


爲什麼GridView將其值重置爲用戶編輯之前的值?

如果我綁定的GridView(通過的DataSourceID屬性)的SqlDataSource並設置的SelectCommand的UpdateCommand屬性,那麼一切都完美的作品。

但是,如果我們手動調用GridView.DataBind的Page_Load(),然後的SqlDataSource不執行任何更新,即使SqlDataSource.UpdatingSqlDataSource.Updated事件做火的時候GridView的更新按鈕被點擊。我認爲這是由於的GridView復位到這是什麼之前,用戶編輯的事實:


一)爲什麼GridView控件重置其價值觀,如果我們手動調用的DataBind()裏面Page_Load()

b)自更新操作手動調用的DataBind時不工作,那麼我會認爲刪除操作也不會工作,但它確實。爲什麼?


歡呼

回答

1

相信的Page_Load運行之前,你的變化發生,所以您在運行更新

包裹在一個如果沒有的IsPostBack綁定的Page_Load下時之前綁定的舊數據,我相信這會解決你的問題。

+0

這不是我所問。我知道,爲了使更新操作成功,然後回發,我們不應該手動調用DataBind。 – SourceC 2009-08-24 18:51:33

0

您需要爲源代碼分配GridView並綁定數據綁定。沿着以下代碼的行:

Page_Load 

if(!Page.IsPostBack) 
{ 
    gv1.DataSource = GetData(); 
    gv1.DataBind(); 
} 
相關問題