每次按下树节点时都会触发 selectegNodeChanged 事件并重新加载页面。所以,我丢失了存储在 Dictionary、ArrayList 中的一些数据...如何防止这些数据丢失?
所以,我将那些 Dictionary 和 ArrayList 存储为“静态”。它现在解决了我的问题。
这是这样做的好方法吗?
每次按下树节点时都会触发 selectegNodeChanged 事件并重新加载页面。所以,我丢失了存储在 Dictionary、ArrayList 中的一些数据...如何防止这些数据丢失?
所以,我将那些 Dictionary 和 ArrayList 存储为“静态”。它现在解决了我的问题。
这是这样做的好方法吗?
不,不要使用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
属性。如果 count 为ArrayList
,0
则从 DB 中获取,否则使用它。
希望我足够清楚。