【发布时间】:2009-03-24 19:33:09
【问题描述】:
看起来 DataTable.Rows 属性没有保存在 ViewState 中,但 Columns 属性是,因为我无法解释为什么列在回发之间持续存在而数据不存在。 有什么想法吗?
【问题讨论】:
看起来 DataTable.Rows 属性没有保存在 ViewState 中,但 Columns 属性是,因为我无法解释为什么列在回发之间持续存在而数据不存在。 有什么想法吗?
【问题讨论】:
DataTable 类在 ViewState 中根本不存储任何内容。 DataTable 类并非特定于 Web 应用程序,也不使用任何特定于 Web 的功能。
如果来自 DataTable 对象的任何数据存储在 ViewState 中,那是因为您将它用作在 ViewState 中存储信息的 Web 控件的数据源,例如 DataGrid。控件从 DataTable 中复制它需要在回发时重新创建控件的信息。页面发送到浏览器后,最初用于数据绑定控件的 DataTable 对象不再存在。
DataGrid 控件的 Columns 属性(例如)是 DataGridColumn 对象的集合,它与作为 DataColumn 对象的集合的 DataTable 类的 Columns 属性不同,尽管大部分信息来自当 DataGrid 绑定数据时,DataTable 被复制到 DataGrid 的列中。
【讨论】: