GridView 的 EnableViewState 影响数据刷新

作者:vkvi 来源:千一网络(原创) 日期:2009-12-9

GridView 和 ObjectDataSource 配合显示数据时,GridView 的 EnableViewState 的默认值为 true,这样,GridView 第一次显示了数据之后,它些数据还存在一个 HTML 的 hidden 中,当页面回传时,如果没有发生分页、编辑、更新、删除等影响数据的操作,那么 GridView 就仍然使用回传的数据来显示,而不再重新读取数据库。这种情况下,加大了网络传输的流量,但省略了对数据源的读取。

上面说的“如果没有发生分页、编辑、更新、删除等影响数据的操作”,怎样才算没发生,是 GridView 认为没有发生。也就是说如果这些操作不是由 GridView 产生的,那么它就认为没发生。比如页面上面一个文本框,用来增加记录,而下面的 GridView,他不知道文本框增加了记录,所以它就仍然使用 ViewState 的数据。所以此时有必要将 EnableViewState 设置为 false。

不读取数据库也不是绝对

上面说的 EnableViewState 为 true,又没有发生影响数据的操作,就不会重新读取数据库,这也不是绝对。如果我们在 Page_Load 中为 GridView 指定了 DataSourceID 属性,或调用了 DataBind 方法,那么每次回送都会发生数据库读取。

相关阅读

相关文章