- PR -

パネルにツリー表示のコントロールを動的に配置するには

1
投稿者投稿内容
MI
常連さん
会議室デビュー日: 2007/01/30
投稿数: 30
投稿日時: 2007-01-30 14:32
ASP.Net1.0を使ってウェブページを作っておりますが、
どうしても自分で解決できない為質問させてください。

以下のようなページを作りたいと思っております。

(フレーム左側メニュー)
配置順
1.静的コントロール(ラベル1・リンク1)
2:動的コントロール
  ・リックでツリー表示
  ・ツリー動作は<head>内記述JSCript
・ツリーの子要素は、DBより取得の為、可変
  ・子要素はHyperLink
3:動的コントロール
  2と同じく
4:静的コントロール
 ハイパーリンク×6


まず、1・4を配置し 1と4の間にパネル(PlaceHolderのほうが適しているかと思いましたが、ページの一番上に来てしまう為やめました)を配置し、パネルの中に動的に2・3を展開すればよいかと思い、以下のコードを作りました。


※<Head>内-----------------------------------------
<script type="text/javascript">
<!--
function exMenu(tName)
{
tMenu = document.all[tName].style;
if(tMenu.display == 'none')tMenu.display = "block";
else tMenu.display = "none";
}
//-->
</script>
</HEAD>

Page_Load内-----------------------------------------
※2のみです

Dim strTreeBgn As String = "<A href=""JavaScript:exMenu('treeMenu3')"" target=""left""><asp:label id=""lblUserName3"" style=""Z-INDEX: 116"" runat=""server"">テスト</asp:label></A><DIV id=""treeMenu3"" style=""DISPLAY: none"">"
Dim strTreeEnd As String = "</DIV>"
Dim litDivBgn As New LiteralControl("<DIV>")
Dim litDivEnd As New LiteralControl("</DIV>")

Dim litTreeBgn As New LiteralControl(strTreeBgn)
Dim litTreeEnd As New LiteralControl(strTreeEnd)

With Me.Panel1.Controls
.Add(litTreeBgn)

For i As Integer = 0 To (DBTable.Rows.Count - 1)

Dim myHyperLink As New HyperLink
With myHyperLink
.Text = DBTable.Rows(i).Item(0)
.Target = "right"
.NavigateUrl = "0000.aspx" & "?id=" & CStr(DBTable.Rows(i).Item(1))

End With

.Add(litDivBgn)
.Add(myHyperLink)
.Add(litDivEnd)
Next i

.Add(litTreeEnd)
End With
-----------------------------------------

するとクリックでツリーが改行されないまま固まって展開されます。
ソースで見ると、<DIV>要素が最後の1度しか入っていませんでした。
<BR>に変えても同じでした。

質問1:ハイパーリンクごとに改行を入れるには何処を直せばよいでしょうか。
質問2:パネルを自動的に拡張・縮小させ、それに伴い4の位置も上下させる方法は無いでしょうか。パネルでなくてもよいのですが。ヒントだけでも教えて頂けたらうれしいです。
質問3:ラベルにJavaをつけるコードが自分で分からなかった為Literalコントロールを使っております。
Attributesのような書き方がきっとあるのだと思いますが、
恐縮ですが不勉強の為わかりません。
上の場合どのようなコードを書けばよいのか、教えていただければ大変うれしいです。


始めて間もない為、おかしな点が多いと思いますが
ご指摘・ご指導よろしくお願いいたします。
MI
常連さん
会議室デビュー日: 2007/01/30
投稿数: 30
投稿日時: 2007-01-30 14:48
すみません、自己訂正です。

10行目あたり
2:動的コントロール
  ・リックでツリー表示
 →・クリックでツリー表示
  
  ・ツリーの子要素は、DBより取得の為、可変
 →・ツリーの子要素の内容・要素数は、DBより取得の為、可変
MI
常連さん
会議室デビュー日: 2007/01/30
投稿数: 30
投稿日時: 2007-01-31 17:09
ご回答が無いようですので、代替案のTreeViewで自己解決とさせていただきます。
分かりやすい文章を書けるよう出直してまいります。
1

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