我在我的页面上使用了bind allGridViews
等(除非不可能这样做)。最近,我开始以编程方式绑定我的所有控件。我发现这更清洁、更容易,尽管有些人可能不同意。DetailViews
ObjectDataSource
与 a 绑定ObjectDataSource
显然有其优点和缺点,以编程方式进行绑定也是如此。
假设我以编程方式绑定 GridView(例如GridView1.DataSource = SomeList
),当我在 GridView 上更改页面时,我还必须对此进行编码。每次页面更改时,我都必须GridView1.DataSource = SomeList
再次调用。显然,ObjectDataSource
我不需要这样做。我通常将我的SomeList
对象粘贴到 ViewState 中,因此当我更改页面时,我不需要每次都访问数据库。
我的问题是:ObjectDataSource 是这样工作的吗?它是否将其数据存储在 ViewState 中并且除非您调用该.Select
方法,否则不会再次访问数据库?我喜欢尝试从我的应用程序中获得最佳性能,并尽可能少地访问数据库,但我不太喜欢在 ViewState 中存储大量列表的想法。有没有更好的方法来做到这一点?每个用户缓存是一个好主意(或可能)吗?我是否应该每次都访问数据库而不是将庞大的列表存储在 ViewState 中?有时访问数据库比使用 ViewState 更好吗?