TreeViewコントロールの使い方(2)

ルート直下のノードを追加
tree.Nodes.Add(node)

ルート直下のノードを削除
tree.Nodes.RemoveAt(0)

ルート直下のノードを全て削除
While (tree.Nodes.Count > 0)
    tree.Nodes.RemoveAt(0)
End While

ルート直下のノードを選択
tree.Nodes.Item(0).Select()

ルート直下のノードを開く
tree.Nodes.Item(0).Expand()

子ノードを追加
Dim parent As New TreeNode() = tree.Nodes.Item(0)
parent.ChildNodes.Add(node)

子ノードを削除
Dim parent As New TreeNode() = tree.Nodes.Item(0)
parent.ChildNodes.RemoveAt(0)

子ノードを全て削除
Dim parent As New TreeNode() = tree.Nodes.Item(0)
While (parent.ChildNodes.Count > 0)
    parent.ChildNodes.RemoveAt(0)
End While

子ノードを選択
Dim parent As New TreeNode() = tree.Nodes.Item(0)
parent.ChildNodes.Item(0).Select()

子ノードをノードを開く
Dim parent As New TreeNode() = tree.Nodes.Item(0)
parent.ChildNodes.Item(0).Expand()

選択しているノードのValue値
Dim strNodeValue As String = tree.SelectedNode.Value

他のプロジェクトで開発したソースファイルをプロジェクトに追加

単純にプロジェクトにファイルを追加しただけだと、下のようにビルドアクションが「コンテンツ」になってしまい、ソースファイル内のクラスが利用できません。

ビルドアクションを「コンパイル」にすれば、ソースファイル内のクラスが利用できるようになります。

ページ間でデータの受け渡し

Session オブジェクトを使えば簡単にフォーム間で受け渡しができる。

例として、TreeViewでノードが選択されたとき、ノードの情報をSessionに格納してから、他のページをリロードする。

Private Sub tree_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tree.SelectedNodeChanged
Session(“myTreeSelectValue”) = DirectCast(sender, TreeView).SelectedValue
Response.Write(“<script language=’JavaScript’>parent.right.location.reload();</Script>”)
End Sub

リロードされたページでは、Sessionから情報を読み込んで、選択された項目の子ノードを一覧表示する。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack() Then
Exit Sub
End IfDim arg As String = Session(“myTreeSelectValue”)If (Not String.IsNullOrEmpty(arg)) Then
‘選択ノードの子ノードを表示
datagrid.DataSource = CreateDataSource(arg)
datagrid.DataBind()
Else
‘未選択
datagrid.DataSource = CreateDataSource(“”)
datagrid.DataBind()
End IfEnd Sub

ModalPopupExtenderでモーダル・ウィンドウを表示

■元ネタ
http://www.atmarkit.co.jp/fdotnet/dotnettips/580aspajaxmodalpopup/aspajaxmodalpopup.html

■手順
1.ASP.NET AJAX Control Toolkitを利用できるようにする
2.モーダル・ウィンドウを表示するためのボタンを追加
3.モーダル・ウィンドウとして表示するパネルを定義
4.ツールボックスからToolkitScriptManagerをドラッグ&ドロップで画面に追加
5.ツールボックスからModalPopupExtenderをドラッグして2のボタンの上でドロップ
6.ソース画面で、ModalPopupExtenderのPopupControlIDに3で定義したパネルのIDを設定
7.その他のプロパティは元ネタを参照

■サンプルプログラム

<form id=”form1″ runat=”server”>
<asp:Button ID=”btnPopup” runat=”server” Text=”ポップアップ” /><asp:ToolkitScriptManager ID=”ToolkitScriptManager1″ runat=”server”>
</asp:ToolkitScriptManager><asp:ModalPopupExtender ID=”btnPopup_ModalPopupExtender” runat=”server”
TargetControlID=”btnPopup” PopupControlID=”pnlDialog” BackgroundCssClass=”modalBackground”
DropShadow=”true” Drag=”true” PopupDragHandleControlID=”pnl”
OkControlID=”btnOk” CancelControlID=”btnCancel”>
</asp:ModalPopupExtender><%–モーダル・ウィンドウとして表示するパネルを定義–%>
<asp:Panel ID=”pnlDialog” runat=”server”>
<asp:Panel ID=”pnl” runat=”server” Wrap=”False” BackColor=”#FFFFFF”>

<table bgcolor=”#000000″ border=”0″ cellpadding=”0″ cellspacing=”0″><tbody><tr><td>
<table border=”0″ cellpadding=”3″ cellspacing=”1″><tbody><tr bgcolor=”#FFFFFF”><td>

<p>てすと</p>
<p>
<asp:Button ID=”btnOk” runat=”server” Text=”決定” />
<asp:Button ID=”btnCancel” runat=”server” Text=”キャンセル” />
</p>

</td></tr></tbody></table>
</td></tr></tbody></table>

</asp:Panel>
</asp:Panel>

</form>


■実行例

ASP.NET AJAX Control Toolkitを利用する

■元ネタ
http://www.atmarkit.co.jp/fdotnet/dotnettips/580aspajaxmodalpopup/aspajaxmodalpopup.html

■Control Toolkitを利用するための準備

Control Toolkitを、以下のサイトからダウンロードする。

AJAX: The Official Microsoft ASP.NET Site
http://www.asp.net/ajax
AJAX Control Toolkit→CodePlex→Downloads→AjaxControlToolkit.Binary.NET4.zip
の順でリンクを辿ればダウンロードできる。

ダウンロードしたzipファイルを解凍する。

展開されたフォルダから
・「ja」「fr」など、すべてのサブフォルダ
・AjaxControlToolkit.dll
を、アプリケーション・ルート配下のBinフォルダにコピーする。

Control Toolkitで提供されるコントロールを利用するための設定をWeb.configに記述する。

<system.web>
……中略……
<pages>
<controls>
<add tagPrefix=”ajaxToolkit” namespace=”AjaxControlToolkit” assembly=”AjaxControlToolkit”/>
</controls>
</pages>
</system.web>

以上で、「<ajaxToolkit:~」のタグが使えるようになる。

■ツールボックスにコントロールを追加する

ツールボックス上で右クリックし、表示されたコンテキスト・メニューから[アイテムの選択]を選択して[ツールボックス アイテムの選択]ダイアログを表示させる。

[参照]ボタンをクリックし、先ほどアプリケーションに配置したAjaxControlToolkit.dllを選択する。
コントロールが追加され、かつ、チェックが入っていることが確認できたら、そのまま[OK]ボタンをクリックする。

以上で、ツールボックスにコントロールが追加される。

■ビルドできるようにする

上の設定までだと、ビルドすると「・・・が定義されていません。」のエラーが出てしまうので、参照設定を追加する。

ソリューションエクスプローラーの参照設定を右クリックして、参照の追加を選択。
参照の追加画面からAjaxControlToolkit.dllを選択して、[OK]ボタンをクリックする。

以上で、AjaxControlToolkitのコントロールを使ったソースコードをビルドできるようになる。