- PR -

[ASP.NET2.0]TreeViewでの縦スクロールの表示について

投稿者投稿内容
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-11-02 10:39
お世話になります。

掲題の件ですが、TreeViewにスクロールバーを表示させたいのですが、
どうすればよいでしょうか?


以前、一覧形式の表のスクロールバー表示を実装したことがあり
その経験から<DIV>タグで囲めばいいかと思ってやってみたのですが
スクロールバーが表示されません。
十中八九HTMLが間違っているはず!!



ネットでそれらしき文言がヒットしたのですが、そのページが存在せず凹みました。。。

実現させた事がある方がおられましたらご教授お願い致します。

[参考]
ノードの設定にはデータバインドを使用せず、
ロジックでノード設定を行っています。

かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2006-11-02 10:51
TreeViewのルートとなる要素にCSSスタイルとしてoverflow="auto"を追加すればいいんじゃ?という話ではなくて?
NGO
常連さん
会議室デビュー日: 2005/06/15
投稿数: 29
投稿日時: 2006-11-02 10:53
ワタシも同じように
「ノード設定はロジックで」
という形でDBから読み込んだ値をTreeViewで表示してました。
「画面サイズを固定」
という指示があったため、表示しきれるように横・縦ともにスクロールさせてます。


おっしゃるとおり
<div id="treemenu">
****
</div>
で囲んで、CSSで

#treemenu
{
width:200px;
height:510px;
overflow:auto;
}

とやって、画面内に入りきるようにスクロールさせておりました。

これとは違うやり方なのかな?


[ メッセージ編集済み 編集者: NGO 編集日時 2006-11-02 10:54 ]
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-11-02 11:29
引用:

NGOさんの書き込み (2006-11-02 10:53) より:
ワタシも同じように
「ノード設定はロジックで」
という形でDBから読み込んだ値をTreeViewで表示してました。
「画面サイズを固定」
という指示があったため、表示しきれるように横・縦ともにスクロールさせてます。


おっしゃるとおり
<div id="treemenu">
****
</div>
で囲んで、CSSで

#treemenu
{
width:200px;
height:510px;
overflow:auto;
}

とやって、画面内に入りきるようにスクロールさせておりました。

これとは違うやり方なのかな?


[ メッセージ編集済み 編集者: NGO 編集日時 2006-11-02 10:54 ]


ご教授ありがとうございます。
下記のようにして実現することができました。
---------------------------------------------------------
<div id="treeViewScroll" class="treeViewScroll" >
 <asp:TreeView ID="treeOffice" runat="server" Height="429px" Width="240px" CssClass="treeview_nomal">
 </asp:TreeView>
</div>

/** スタイルシート定義 */
DIV.treeViewScroll
{
height:450px;
width:250px;
overflow:auto;
}
------------------------------------------------------------
ただ、またに
「treeOffice_Dataは宣言されていません」
「lengthはNullまたはオブジェクトではありません」
「オブジェクトでさぽーとされていないプロパティまたはメソッドです」
スクリプトエラーが発生します。

発生するタイミングは
 9割:ノード選択2回目以降
 1割:画面起動時
ぐらいです。

※<DIV>タグで囲む前までは一度もこのようなスクリプトエラーは
発生したことはありません。

ご経験ありますでしょうか?


[ メッセージ編集済み 編集者: Java人 編集日時 2006-11-02 11:31 ]
NGO
常連さん
会議室デビュー日: 2005/06/15
投稿数: 29
投稿日時: 2006-11-02 11:41
[quote]
Java人さんの書き込み (2006-11-02 11:29) より:
引用:

------------------------------------------------------------
ただ、またに
「treeOffice_Dataは宣言されていません」
「lengthはNullまたはオブジェクトではありません」
「オブジェクトでさぽーとされていないプロパティまたはメソッドです」
スクリプトエラーが発生します。

発生するタイミングは
 9割:ノード選択2回目以降
 1割:画面起動時
ぐらいです。

※<DIV>タグで囲む前までは一度もこのようなスクリプトエラーは
発生したことはありません。

ご経験ありますでしょうか?


[ メッセージ編集済み 編集者: Java人 編集日時 2006-11-02 11:31 ]



<div>で囲んだだけで出るという現象は、経験したことがありません。
(そんなことあるのかな?私が知らないだけなのかもしれませんが・・・)

----------------
ノードの設定にはデータバインドを使用せず、
ロジックでノード設定を行っています。
----------------
という箇所から、たぶん再帰処理を使用してDBから値を読み込み、TreeViewを作成されているのだと推測いたします。
その辺りのロジックに何らかの原因があると思いますね。
(ちがっていたら、スイマセン。忘れてください・・・)

冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2006-11-02 11:57
.NETについては分かりませんが
引用:

Java人さんの書き込み (2006-11-02 11:29) より:
ただ、またに
「treeOffice_Dataは宣言されていません」
「lengthはNullまたはオブジェクトではありません」
「オブジェクトでさぽーとされていないプロパティまたはメソッドです」
スクリプトエラーが発生します。


という事なら、新たに作ったDIVのidがダブったりしたせいで、Objectが取得できていないのではないでしょうか?
idの記述を消してみるとどうでしょう?

(ただ、たまに・・・というのがちょっとひっかかりますが。)
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-11-02 13:04
引用:

冬寂さんの書き込み (2006-11-02 11:57) より:
.NETについては分かりませんが
という事なら、新たに作ったDIVのidがダブったりしたせいで、Objectが取得できていないのではないでしょうか?
idの記述を消してみるとどうでしょう?

(ただ、たまに・・・というのがちょっとひっかかりますが。)


DIVのidを削除したのですが同じでした。。。
もう少しパターンを調べてみます。
Java人
ベテラン
会議室デビュー日: 2005/06/24
投稿数: 94
投稿日時: 2006-11-07 14:35
ノードを選択するとスクリプトエラーが発生する件ですが、
原因がわかりました。

以下のようにスタイルシートを設定しているとエラーが発生するようです。
---------------------------------------------------------------
<asp:TreeView ID="treeOffice" runat="server" Height="429px"
           Width="240px" CssClass="treeview_nomal">
  <ParentNodeStyle CssClass="treeview_nomal" />
  <HoverNodeStyle CssClass="treeview_nomal" />
  <SelectedNodeStyle CssClass="treeview_nomal" />
  <RootNodeStyle CssClass="treeview_nomal" />
  <LeafNodeStyle CssClass="treeview_nomal" />
  <NodeStyle CssClass="treeview_nomal" />
</asp:TreeView>
---------------------------------------------------------------

なので、以下のように修正しました。
---------------------------------------------------------------
<asp:TreeView ID="treeOffice" runat="server" Height="429px"
           Width="240px" CssClass="treeview_nomal">
  <NodeStyle CssClass="treeview_nomal" />
</asp:TreeView>
---------------------------------------------------------------

操作を何度も行いましたが、スクリプトエラーが発生しなかったので
おそらく大丈夫だと思います。

スキルアップ/キャリアアップ(JOB@IT)