ツリーノードを押すたびに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は0DB から取得し、それ以外の場合はそれを使用します。
私が十分に明確であることを願っています。