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