我使用ObjectDataSource
(除非它是不可能這樣做)使用綁定所有GridViews
,DetailViews
等我的網頁上。最近,我開始以編程方式綁定我的所有控件。我覺得這更清潔,更容易,但有些人可能會不同意。用ObjectDataSource
綁定以編程方式綁定VS.對象數據源的性能
顯然有它的優點和缺點,如由於編程這樣做。
說我結合一個GridView編程(例如GridView1.DataSource = SomeList
),當我改變在GridView上頁,我必須也代碼這一點。每次頁面更改時,我必須再次撥打GridView1.DataSource = SomeList
。顯然,用ObjectDataSource
我不需要這樣做。我通常堅持我SomeList
對象到ViewState中,所以當我改變頁面,我不需要每一次都擊中數據庫。
我的問題是:這是ObjectDataSource控件是如何工作的?它是否將其數據存儲在ViewState中,除非調用.Select
方法,否則不會再次訪問數據庫?我喜歡嘗試從我的應用程序中獲得最佳性能,並儘可能少地訪問數據庫,但我並不喜歡在ViewState中存儲大量列表的想法。有沒有更好的方法來做到這一點?緩存每個用戶一個好主意(或可能)?每次我只需要打開數據庫,而不是將我的巨大列表存儲在ViewState中?點擊數據庫比使用ViewState有時更好嗎?