【问题标题】:DataTable and Viewstate数据表和视图状态
【发布时间】:2009-03-24 19:33:09
【问题描述】:

看起来 DataTable.Rows 属性没有保存在 ViewState 中,但 Columns 属性是,因为我无法解释为什么列在回发之间持续存在而数据不存在。 有什么想法吗?

【问题讨论】:

    标签: c# asp.net datatable


    【解决方案1】:

    DataTable 类在 ViewState 中根本不存储任何内容。 DataTable 类并非特定于 Web 应用程序,也不使用任何特定于 Web 的功能。

    如果来自 DataTable 对象的任何数据存储在 ViewState 中,那是因为您将它用作在 ViewState 中存储信息的 Web 控件的数据源,例如 DataGrid。控件从 DataTable 中复制它需要在回发时重新创建控件的信息。页面发送到浏览器后,最初用于数据绑定控件的 DataTable 对象不再存在。

    DataGrid 控件的 Columns 属性(例如)是 DataGridColumn 对象的集合,它与作为 DataColumn 对象的集合的 DataTable 类的 Columns 属性不同,尽管大部分信息来自当 DataGrid 绑定数据时,DataTable 被复制到 DataGrid 的列中。

    【讨论】:

    • 但是我所看到的与你所说的完全矛盾。请注意,我不是在谈论 GridView(我知道 gridView 确实存储在 ViewState 中)。我看到的是 DataTable 的 Columns 属性也被存储。我想我将不得不再进行一些测试。
    • 我的错,你是对的。我之前在添加列,但没有注意到。
    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多