数据视图不包含其他事件中的记录
本文关键字:记录 事件 其他 视图 包含 数据 | 更新日期: 2023-09-27 18:14:18
我在全局声明部分全局定义了dataview。现在我在一个方法中将另一个数据视图的值分配给该全局定义的数据视图。现在我正在使用全局定义的Dataview到另一个方法。但我没有得到在第一种方法中定义的记录。我需要它。怎么做呢?
public partial class Properties : System.Web.UI.Page
{
//Declaration of Dataview :
DataView dtViewLink = new DataView();
protected void Page_Load(object sender, EventArgs e)
{
}
// define in this method
protected void myMethod(object sender, EventArgs e)
{
dtViewLink = null;
dtViewLink = dvEmployee; //dvEmployee is other Dataview that has two records.
}
// i am using it here
protected void ddlSortSortBy_SelectedIndexChanged(object sender, EventArgs e)
{
if (dtViewLink.Count > 0)
{
dtViewLink.Sort = "" + strName + " Asc";
}
}
}
这个例子将清除我必须做的事情
假设从不同的页面或在页面生命周期的不同阶段调用这些方法,则数据视图的作用域将丢失。您应该将此对象存储在缓存中,以便在单独的页面上使用。
输入以下代码:
dtViewLink = null;
dtViewLink = dvEmployee;
,并调试上面所示的每个方法中发生的情况。
在您输入方法ddlSortSortBy_SelectedIndexChanged
之前,dvEmployee
是否有任何记录,或者在以下回发时是否为空?
人们问你是否在同一个页面生命周期而不是在同一个页面,这两个概念是不同的,因为web表单是无状态的,如果你想在后续的post back/生命周期和其他方法中再次使用它,你应该持久化你的数据…
你可以创建你的loadData事件,并从PageLoad调用它所有的时间或你坚持在ViewState, Session或缓存的东西取决于如果相同的数据必须只适用于这个页面,是非常小(ViewState),无处不在的当前用户会话(Session)或无处不在,并在web应用程序(缓存)的每个人…
use
static DataView dtViewLink ; // globally