如何在页面上存储数据表以从我的gridview访问?

时间:2011-12-01 19:47:01

标签: asp.net gridview datatable

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

2 个答案:

答案 0 :(得分:2)

使用服务器端容器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;

答案 1 :(得分:2)

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