0

ツリーノードを押すたびにselectegNodeChangedイベントがトリガーされ、ページがリロードされます.So、Dictionary、ArrayListに保存されているデータを失いました...それらのデータが失われないようにするにはどうすればよいですか?

そのため、これらの Dictionary と ArrayList を「静的」として保存しました。これで問題は解決しました。

それは良い方法ですか?

4

1 に答える 1

1

いいえ、使用しないでくださいstaticViewStateこれらをorに格納してみてくださいSessionViewState大量のデータでなければ 検討できます。static間でアクセス可能にSessionなり、良い習慣ではありません。

以下に示すように、プロパティを作成してコードの重複を避けることができます。

    public ArrayList TreeNodeDataList
    {
        set
        {
            ViewState["TreeNodeDataList"] = value;
        }
        get
        {
            if (ViewState["TreeNodeDataList"] == null)
            {
                return (new ArrayList());
            }
            else
            {
                return (ViewState["TreeNodeDataList"] as ArrayList);
            }
        }
    }

ここで、データを再割り当てする場合は、TreeNodeDataListプロパティを読み取ります。その数が の場合ArrayList0DB から取得し、それ以外の場合はそれを使用します。

私が十分に明確であることを願っています。

于 2012-04-25T10:50:20.310 に答える