每次按树节点然后selectegNodeChanged事件触发并重新加载页面。所以,我丢失了一些存储在Dictionary,ArrayList中的数据......如何防止那些数据丢失?
所以,我将那些Dictionary和ArrayList存储为"静态"。它现在解决了我的问题。
这样做的好方法吗?
答案 0 :(得分:1)
没有。不要使用static
。请尝试将这些内容存储在ViewState
或Session
中。
如果不是大量数据,您可以考虑ViewState
。
static
可以Session
访问 public ArrayList TreeNodeDataList
{
set
{
ViewState["TreeNodeDataList"] = value;
}
get
{
if (ViewState["TreeNodeDataList"] == null)
{
return (new ArrayList());
}
else
{
return (ViewState["TreeNodeDataList"] as ArrayList);
}
}
}
,这不是一个好习惯。
您可以创建属性并避免代码重复,如下所示。
TreeNodeDataList
现在,当您想要重新分配数据时,请阅读ArrayList
属性。如果0
的计数为{{1}},则从DB获取,否则使用它。
希望我足够清楚。