在asp.net Treeview中触发selectedNodeChanged事件时如何防止数据丢失?

时间:2012-04-25 10:46:36

标签: c# asp.net asp.net-mvc c#-4.0

每次按树节点然后selectegNodeChanged事件触发并重新加载页面。所以,我丢失了一些存储在Dictionary,ArrayList中的数据......如何防止那些数据丢失?

所以,我将那些Dictionary和ArrayList存储为"静态"。它现在解决了我的问题。

这样做的好方法吗?

1 个答案:

答案 0 :(得分:1)

没有。不要使用static。请尝试将这些内容存储在ViewStateSession中。 如果不是大量数据,您可以考虑ViewStatestatic可以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获取,否则使用它。

希望我足够清楚。