ツリーノードを押すたびにselectegNodeChangedイベントがトリガーされ、ページがリロードされます.So、Dictionary、ArrayListに保存されているデータを失いました...それらのデータが失われないようにするにはどうすればよいですか?
そのため、これらの Dictionary と ArrayList を「静的」として保存しました。これで問題は解決しました。
それは良い方法ですか?
ツリーノードを押すたびにselectegNodeChangedイベントがトリガーされ、ページがリロードされます.So、Dictionary、ArrayListに保存されているデータを失いました...それらのデータが失われないようにするにはどうすればよいですか?
そのため、これらの Dictionary と ArrayList を「静的」として保存しました。これで問題は解決しました。
それは良い方法ですか?
いいえ、使用しないでくださいstatic
。ViewState
これらをorに格納してみてください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
DB から取得し、それ以外の場合はそれを使用します。
私が十分に明確であることを願っています。