- - PR -
TreeView(WEB)のSelectedValueについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-03-25 07:35
TreeViewコントロールについてお尋ねしたいのですが、
(開発環境:C#2.0、Webアプリケーション) 画面にはTreeViewがあり、選択された値(SelectedValue)をDBの検索条件にしています。 また、検索ボタンとクリアボタンがあり、 クリアボタンで検索条件をクリアしたいのですが、 TreeViewのSelectedValueは読み取り専用のため、クリアボタンを押したときにTreeViewのNodes.RemoveAt(0)でノードを削除し、再作成しています。 クリアボタンを押して、ノードを削除したときには、SelectedValueは""になっているのですが、 その後に検索ボタンを押したときには、SelectedValueに、クリアボタンを押す前の選択値が残っています。 また、Nodes.RemoveAt(0)の代わりにNodes.Clear()を試したりしたのですが、同じ現象です。 この現象についてご存知の片いらっしゃいませんでしょうか。 よろしくお願いいたします。 | ||||
|
投稿日時: 2009-03-25 10:00
> クリアボタンを押したときにTreeViewのNodes.RemoveAt(0)でノードを削除し、再作成しています。
Nodes.RemoveAt(0) では最初の Node しか削除されません。 Nodes.RemoveAt(0) を繰り返して Node を全て削除している、の間違いでしょうか。 間違いと仮定して下記のコードで実行しましたが、 クリア&再作成後は問題なく SelectedValue には何も入っていません。 何か他に処理をしていて、それが影響しているのではないでしょうか。
| ||||
|
投稿日時: 2009-03-25 10:09
単純に検索条件をクリアしたいのならば、
SelectedValue ではなくて TreeView.SelectedNode.Selected = false で、 未選択にできそうな気がします。 | ||||
|
投稿日時: 2009-03-25 23:21
King さんのサンプルをこちらで試してみました。
こちらで望んでいる動きになりました。 >Nodes.RemoveAt(0) では最初の Node しか削除されません。 >Nodes.RemoveAt(0) を繰り返して Node を全て削除している、の間違いでしょうか。 につきましては、失礼しました。すべて削除しています。 また、た さんの >単純に検索条件をクリアしたいのならば、 >SelectedValue ではなくて TreeView.SelectedNode.Selected = false で、 >未選択にできそうな気がします。 ですが、おっしゃるとおりで、クリアしたいだけですので今後はこちらで考えてみます。(このプロパティを知りませんでした・・・) ですが、結論としましてはまだ解決していません。 開発中のものとサンプルとでどこが違っているのかもう一度、探してみます。 (開発中のページは ajax extension を使っていてTreeViewはUpdatePanelの中にあったり、MasterPageを使っているContentだったりするのですが、サンプルにも実装してみたところ、関係なさそうです。) 解決しましたらご報告します。 |
1