none
TreeView(xml)で特定ノードの非表示 RRS feed

  • 質問

  • 左のTreeViewのノードをクリックすると右のDataListに画像を表示するWebformを試行しています。

    TreeViewの画像のノードの数が多いためこれを非表示にできないかと調べているのですが可能でしょうか?

    いろいろと探してみると表示非表示はできないようで、画像の親ノードを展開できなくすればと思い、親ノードをselectしたときに

    TreeView1.SelectedNode.Collapse()としてみましたが、一度selectすると展開しないのですが続けてselectすると展開します。

    xmlデータは 以下のようで、fileノードの親をクリックすると展開できないようにしたいと思っているのですが、、、。

    もちろんほかの方法でもよろしいので何かアドバイスよろしくお願いします。
    <root>
    < dir0 name="AA" id="1" >
    < dir1 name="S" >
    < file name="001.jpg" path="/images/AA/S/001.jpg" />
    < file name="002.jpg" path="/images/AA/S/002.jpg" />
    < /dir1 >
    <dir1 name="T" >
    <file name="001.jpg" path="/images/AA/T/001.jpg" />
    </dir1 >
    < /dir0>
    <dir0 name="BB" id="2" >
    < dir1 name="S" >
    < dir2 name="S-1" >
    < file name="001.jpg" path="/images/BB/S/S-1/001.jpg" />
    < /dir2>

    2011年11月28日 10:09

回答

  • 何をしたいのかよく分からないのではずれかもしれませんが、file は
    一切 TreeView に表示したくない(展開されなくても良い)のだと理
    解して・・・

    AutoGenerateDataBindings="False" にして file を表示しないように
    すればいいのでは?

    <DataBindings> から </DataBindings> までのソースコードを削除して、
    デザイン画面で[TreeNode Databindings の編集...]をクリックして
    表示されるエディター画面で file 以外のノードを選択し、データバイ
    ンドのプロパティで各ノードの TextField と ValueField を適宜設定
    してみてください。

    その場合、先のスレッドで 2 案提案したうちのボツにすると言ったほ
    うでないと DataList の表示がうまくいかないかもしれません。

     

     

    • 回答としてマーク taka_toshi 2011年11月29日 6:43
    • 回答としてマークされていない taka_toshi 2011年11月29日 8:16
    • 回答としてマーク taka_toshi 2011年11月30日 9:39
    2011年11月28日 13:42

すべての返信

  • 何をしたいのかよく分からないのではずれかもしれませんが、file は
    一切 TreeView に表示したくない(展開されなくても良い)のだと理
    解して・・・

    AutoGenerateDataBindings="False" にして file を表示しないように
    すればいいのでは?

    <DataBindings> から </DataBindings> までのソースコードを削除して、
    デザイン画面で[TreeNode Databindings の編集...]をクリックして
    表示されるエディター画面で file 以外のノードを選択し、データバイ
    ンドのプロパティで各ノードの TextField と ValueField を適宜設定
    してみてください。

    その場合、先のスレッドで 2 案提案したうちのボツにすると言ったほ
    うでないと DataList の表示がうまくいかないかもしれません。

     

     

    • 回答としてマーク taka_toshi 2011年11月29日 6:43
    • 回答としてマークされていない taka_toshi 2011年11月29日 8:16
    • 回答としてマーク taka_toshi 2011年11月30日 9:39
    2011年11月28日 13:42
  • いつもありがとうございます。

    説明不足ですみません。外れていません的中です。

    >先のスレッドで 2 案提案したうちのボツにすると言ったほうでないと DataList の表示がうまくいかないかもしれません。

    その通りでした。ボツの方ではうまくいきますが(TreeViewにFileのノードが表示されないしDataListに画像も表示する)、そうでない方はノードをクリックしても反応しません。でボツの方を採用しようと思ったのですが、、、。

    ボツのほうでやると以前教えていただいた、”GridViewのレコードをクリックして別ページのTreeViewのnodeを選択できるようする。”http://social.msdn.microsoft.com/Forums/ja-JP/vwdexpressja/thread/2629f66c-4a2c-4b17-bf5a-0ef93df08a26

    GridViewから遷移させるとTreeViewでノードを選択してもListViewに画像を表示しません。(”TreeView(xml)とDataList(xml)の連携その2”で、2つのコードともうまく動作し、と書きましたが、これ間違えでした。ボツのほうは、遷移するとfileノードは表示されるが画像は表示されないでした。すみません。)

    今回の設定(AutoGenerateDataBindings="Falseとfileノードをバインドしない)をもとにボツでない方で設定した場合、TreeViewとDataListのページ自体で動かすと、画像もfileノードも表示し、GridViewからTreeViewとDatalistのページに遷移しても、同じく画像もfileノードも表示します。

    一方ボツのほうでも今回の設定をした場合、TreeViewとDataListのページ自体で動かすと、画像を表示するがfileノードは表示しない、GridViewからTreeViewとDatalistのページに遷移すると、画像もfileノードも表示しません。

    今回の設定をしない場合でもボツのほうは遷移すると、画像が表示されません。

    判りにくくて済みませんが、最終的な希望はGridViewから遷移してDataListに画像を表示するが、TreeViewにfileノードは表示させないです。

    また当初の質問から広がってしまって大変申し訳ありません、何か方策はあるでしょうか?

     


    2011年11月29日 6:43
  • 同じスレッドで次々質問を追加するのでなく、表題と質問の内容が
    変わってきた場合は別スレッドで質問してください。

    表題の問題が解決したなら、このスレッドは閉じてください。


    くどいようですが、技術的に実現可能かどうか考えながら全体の見
    通しを立てて、本や MSDN ライブラリなどをよく調べて考えを具体
    化して、どうしてもわからない点だけを整理して質問するようにし
    ていただければと思います。
     
    今回のように後戻りしてやり直すより、結局その方が解決に要する
    時間が少なくて済むはずです。

    2011年11月29日 13:08
  • そうですね、別問題が生じましたが、とりあえず表題の問題が解決しましたので、このスレッドは閉じさせていただきます。

    いつもありがとうございます。

    別問題の方はもう少し調べてから解決しなければ新たに投稿したいと思います。

    XPathを遷移されたページで再度バインドすればいいのかな、、、、、?

    またよろしくお願いします、ありがとうございました。

    2011年11月30日 9:39