【问题标题】:How do I store a datatable on the page to access from my gridview?如何在页面上存储数据表以从我的 gridview 访问?
【发布时间】:2011-12-01 19:47:01
【问题描述】:

我想查看gridview 的RowDataBound 事件中的数据表,并检查数据表中是否存在当前gridview 列中的值。我只是在 RowDataBound 事件中创建我的数据表,但这意味着对于 gridview 的每一行,我都在对数据库进行往返并创建一个数据表。我宁愿先创建数据表,然后在我的 RowDataBound 事件中访问数据表。我知道如何使用页面上的标签或隐藏字段来执行此操作,但是我将如何将数据表存储在可从我的 gridview 的 RowDataBound 事件中访问的页面(或变量)上?我可以以某种方式将数据表作为参数传递给 RowDataBound 函数吗?好像我在这里遗漏了一些超级简单的东西......

【问题讨论】:

    标签: asp.net gridview datatable


    【解决方案1】:

    有一些服务器端容器可供使用,Items 容器可能是一个完美的选择。你可以用一个属性包装你的 DataTable:

    public DataTable TempData
    {
        get
        {
            if ( this.Context.Items["tempdata"] != null )
                return (DataTable)this.Items["tempdata"];
            return null;
        }
        set
        {
             this.Context.Items["tempdata"] = value;
        } 
    }
    

    然后您访问该属性:

    this.TempData = yourdatatable;
    

    并在某处检索它

    DataTable storedTable = this.TempData;
    

    【讨论】:

    • 在 VB 中很相似? (这是我使用的语法...)
    • 是的,在 VB 中应该非常相似。 VB 还支持属性,而且您使用的是相同的技术。
    【解决方案2】:

    将您的 DataTable 声明为页面类中的类级别变量。然后,您可以通过任何方法访问它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-05
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多