使用ASP.NET TreeViewコントロール

<ASP:TreeViewコントロールID = "TreeView2" にrunat = "サーバー"> </ ASP:ツリービュー>

データベース:

 

 フロントコード:

<ページ言語= "C#" AutoEventWireup属性= "true"を分離コード= "index.aspx.cs"継承= "TreeView.index" %@%>

<!DOCTYPE HTML>

://www.w3 <HTMLのxmlns = "HTTP。 ORG / 1999 / XHTML ">
<頭にrunat ="サーバー">
<META HTTP-当量=" Content-Typeの」コンテンツ= "text / htmlの;のcharset = UTF-8" />
<タイトル> </ TITLE>
</ヘッド>
<BODY>
<フォームID = "Form1の"にrunat = "サーバー">
の<div>
<ASP:TreeViewコントロールID = "のTreeView1"にrunat = "サーバー">
<ノード>
<ASP:TreeNodeのテキスト= "新建节点"値= "新建节点">
<ASP:TreeNodeのテキスト= "新建节点"値= "新建节点"> </ ASP:ツリーノード>
</ ASP:ツリーノード>
<ASP:TreeNodeのテキスト= "新しいノード"値= "新規ノード">
<ASP:TreeNodeのテキスト= "新しいノード"値= "新規ノード"> </ ASP:のTreeNode >
</ ASP:ツリーノード>
</ノード>
</ ASP:ツリービュー>
<H2>上記ビュー編集で、次の</ H2>追加するためのコードである
<ASPを:ツリービューID = "TreeViewdb"にrunat = "サーバー"> </ ASP:ツリービュー>
<H2>以下のとおりであります</ H2>データベースのコードを追加します
。</ ASP:ツリービュー>:<TreeViewコントロールID = "TreeView2"にrunat = "サーバー" ASP>
</ div>
</ FORM>
</ BODY>
</ HTML>

 

背景コード:


システムが使用して;
System.Collections.Genericを使用して、
System.Linqのを使用して、
System.Webのを使用して、
使用したSystem.Web.UI;
System.Web.UI.WebControlsを使用して;



System.Dataを使用して、
BLLを使用して、
名前空間ツリービュー
{
パブリック部分クラスインデックス:System.Web.UI.Page
{
をPage_Load(オブジェクト送信者、EventArgsのE)、ボイド保護
{
IF(!Page.IsPostBack)
{
this.TreeViewdb.Dispose(); //クリーンアップ
TreeNodeCollection TNC = this.TreeViewdb.Nodes; / /ルートノードは収集表す
ツリーノードtnNodelをツリーノード新しい新=();
; tnNodel.Textは=「これがルートである」
tnc.Add(tnNodel)は、
ツリーノードツリーノード新しい新規T2 =();
t2.Text =「これが最初であります2つのルート「;
tnc.Add(T2)。
//
ツリーノードtnNode1 TreeNodeの新しい新=();
; tnNode1.Text = "これは、ルートノードの子ノードである"
tnNodel.ChildNodes.Add(tnNode1);
/ *************** ***************************************
*のDataSetのDataTableのDataView
* 2次元テーブルですデータセットは、データベースクエリの結果セット外である
*ことができる複数のテーブル(複数のテーブルを返す)、.Table [「テーブル名」]または.Table [「0」]または.Table [「1」]は
一般*それは単一テーブルのクエリまたは複数のテーブルで、最終的な結果を照会するかどうかのテーブルであるので、我々 .Table [「0」]使用するのに十分である
* DataTableのDTB = dataset.table [「0」]
*のDataView .table = DTB
* .RowFilter =「文字列」については、ここではフィルタの一部である、SQLクエリのような条件があります
*
* *************************** ******************* /

///////
InitTree(this.TreeView2.Nodes、 "0");
}
}
/// <まとめ>
///再帰的な初期化のTreeView
/// </要約>
/// <PARAM NAME = "TNC" > ノード</ PARAM>の組
/// <PARAM NAME = "PARENTID">親ノードID </ PARAM>
プライベートボイドInitTree(TreeNodeCollection TNC、ストリングPARENTID)
{
ツリーノードノード。
データビュー新しい新しいDV =データビュー();
//バインド(データビューに結合した表でDataSe [0]は、スクリーニング)
dv.Table BLL.UserBLL.allNodes =();
対応する属性アウト//フィルタ、(親ノードIDに沿って)、残りを除去しました。
= dv.RowFilter "ParentNodeId =" + PARENTID; //
foreachの(DataRowView DVでDRV)
{
// DataRowView線
ノードツリーノードの新しい新=();
node.Value DRV = [ "NODEID"]のToString();.
Node.text DRV = [ "表示名"]のtoString();.
//ノード配信設定に新しいノードを追加
tnc.Add(ノード);
//再帰
InitTree(node.ChildNodes、node.Value);
}
}
}
}

 

SysFun.cs(モデル)

システムを使用しました。
System.Collections.Genericを使用しました。
System.Textのを使用しました。

名前空間モデル
{
/// <要約>
///のTreeView的结点类
/// </要約>
パブリッククラスSYSFUN
{
プライベートint型のnodeId。
プライベート文字列のdisplayName;
プライベート文字列nodeURLは、
プライベート文字列parentNodeId。

公共int型NODEID {GET =>のnodeId。セット=>のnodeId =値。}
パブリック文字列表示名{GET =>のdisplayName。セット=>のdisplayName =値。}
パブリック文字列nodeURLは{GET => nodeURLは。セット=> nodeURLは=値。}
パブリック文字列ParentNodeId {GET => parentNodeId。セット=> parentNodeId =値。}
}
}

 

 

 

 

----------------
免責事項:この記事は元の記事CSDNブロガー「漢漢YH」で、次のCC 4.0 BY-SAの著作権契約、複製、オリジナルのソースとのリンクを添付してくださいこの文。
オリジナルリンクします。https://blog.csdn.net/u012997311/article/details/78404483

おすすめ

転載: www.cnblogs.com/ljs-13/p/12157933.html