0

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

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

这是这样做的好方法吗?

4

1 回答 1

1

不,不要使用static。尝试将这些存储在ViewStateSession代替。你可以考虑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 为ArrayList0则从 DB 中获取,否则使用它。

希望我足够清楚。

于 2012-04-25T10:50:20.310 回答