- PR -

TreeViewのExpandDepthについて

1
投稿者投稿内容
たろう
会議室デビュー日: 2008/01/09
投稿数: 11
投稿日時: 2008-01-16 21:47
よろしくお願いいたします。
VisualStudio2005でWeb開発をしております。

TreeViewコントロールについて質問させていただきます。

TreeViewのプロパティでExpandDepthを「2」に設定しているのですが、
実行してもTreeが展開せず、ルートのみが表示された状態になってしまいます。
手動でクリックして展開すると、問題なく展開します。
アプリ実行時に展開させるには、他に設定があるのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-01-16 22:56
引用:

たろうさんの書き込み (2008-01-16 21:47) より:

TreeViewのプロパティでExpandDepthを「2」に設定しているのですが、実行してもTreeが展開せず、ルートのみが表示された状態になってしまいます。


EnableClientScript の値は何になっていますか? クライアント スクリプトは有効になっておりますか? (スクリプト エラーは出ていませんか?)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
たろう
会議室デビュー日: 2008/01/09
投稿数: 11
投稿日時: 2008-01-18 20:35
回答ありがとうございます。
確認したところ、EnableClientScriptはtrueになっておりました。

また、書込み時の確認が足りず肝心な情報が抜けておりました。申し訳ございません。

TreeViewの設定ですが、以下のサイトの「ツリー ノードの動的生成の使用」を参考にして、データベースから動的にノードを生成するようにしております。
また、Ajaxのタブ上に配置しています。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnvs05/htm/asp2.0/treeview.asp

実行時に特にエラーは出ておらず、手動で展開すれば正常にデータベースから
データを取得して表示します。
試しにEnableClientScriptをFalseに設定してみましたが、状況は変わりませんでした。
何か情報がございましたらよろしくお願いいたします。

<script runat="server">

sub TreeView1_TreeNodePopulate(sender As Object, _
e As TreeNodeEventArgs)
Dim con As new SqlConnection(connectionString)
Dim cmd As new _
SqlCommand("SELECT * FROM Discuss WHERE ParentID=@ParentID", _
con)
cmd.Parameters.AddWithValue("@ParentID", e.Node.Value)
con.Open()
Try
Dim dtr As SqlDataReader = cmd.ExecuteReader()
while dtr.Read()
Dim newNode As new TreeNode()
newNode.PopulateOnDemand = true
newNode.Text = dtr("Subject").ToString()
newNode.Value = dtr("MessageID").ToString()
e.Node.ChildNodes.Add(newNode)
End While
Finally
con.Close()
End Try
End Sub

</script>

<html>
<body>
<form id="form1" runat="server">

<asp:TreeView
id="TreeView1"
ImageSet="Arrows"
ShowLines="true"
ExpandDepth="2"
OnTreeNodePopulate="TreeView1_TreeNodePopulate"
Runat="Server">
<Nodes>
<asp:TreeNode
Text="Messages"
Value="0"
PopulateOnDemand="true" />
</Nodes>
</asp:TreeView>
</form>
</body>
</html>

たろう
会議室デビュー日: 2008/01/09
投稿数: 11
投稿日時: 2008-01-22 22:31
いろいろ試行錯誤した結果、解決いたしましたので書込みします。

TreeViewをスクロールするためパネル内に配置しており、パネル表示をデフォルトは非表示にしておき、ボタンクリックイベントで表示/非表示を切り替えるようにしておりました。
このパネル表示のデフォルトを非表示から表示に変更したところ、
TreeViewが設定どおり2段階まで展開されるようになりました。

お世話になりました。

1

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