- PR -

Panel上に配置したTreeviewについて

1
投稿者投稿内容
ちはな
会議室デビュー日: 2009/02/06
投稿数: 5
投稿日時: 2009-02-06 15:11
VS2005、ASP.NET2.0での環境です。

TreeViewの大きさを固定しスクロールバーで制御するため、ScrollsプロパティをBothにしたPanelコントロールの上に配置しています。

このとき、TreeViewの下の階層を選択していくとスクロールバーが表示され、通常のようにスクロールバーで下にずらし、下のほうのノードを選択することができますが、下のほうにあるノードを選択したとき、Panelのスクロールバーが必ず一番上まで戻ってしまいます。
なんとか、Scrollのポジションを取得できないか調べましたが、どうしてもわかりませんでしたので、質問させていただきます。

基本的な質問と思いますが、よろしくお願いします。

私はVB6はそこそこ使っていますが、VB.NET、ASP.NETはまだまだひよっ子です。
turutosiya
常連さん
会議室デビュー日: 2003/06/10
投稿数: 49
お住まい・勤務地: 東京都
投稿日時: 2009-02-07 13:48
Panelに入れずとも、TreeView自体がScrollBarを表示してくれませんでしたっけ?
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2009-02-08 01:50
コード:

function getScrollPos() {
  var o = event.srcElement;
  while ( o.nodeName != "div" ) o = o.parentNode;

  $("TreeViewScrollTop").value = o.scrollTop;
}




これをツリーノードに仕込む。

コード:

window.onload = function() {

   $("TreeView1").scrollTop = <%= TreeViewScrollTop.Text %>;

}




これでポストバック後の再表示時に、Treeがクリックした要素近辺まで
スクロールされます。


ちはな
会議室デビュー日: 2009/02/06
投稿数: 5
投稿日時: 2009-02-09 10:36
turutosiyaさま、ぴあちゃんさま
ご回答ありがとうございます。

>Panelに入れずとも、TreeView自体がScrollBarを表示してくれませんでしたっけ?
MSDNに以下の記載があったので、ムリだと思ったんですが。
(使用例の少し上にスクロールいついての記載があります。)
http://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.treeview(VS.80).aspx

ぴあちゃんさま
コードまで教えていただきありがとうございました。
ただCに関しては全くといっていいほど経験がありませんので、読解までもう少し勉強させてください。もしVBでのコードがあれば非常に嬉しいのですが(すいません、ムリばかり申しまして)




1

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