首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET TreeView 靜態節點導航選單完整建置教學

     編輯:關於ASP.NET

TreeView 控制項概覽

`TreeView` 顯示階層式資料,每個節點為 `TreeNode`,具備 `Text` (顯示文字)、`Value` (隱藏值)、`NavigateUrl` (導航目標)、`Target` (開啟目標視窗)、`ImageUrl` (圖示) 等屬性。

靜態節點宣告 (.aspx)


 
 
 
 
 
 
 
 
 
 

後置程式碼動態建立 (Page_Load)

protected void Page_Load(object sender, EventArgs e)
{
 if (IsPostBack) return;

 TreeView1.ShowLines = true;

 TreeNode root = new TreeNode("產品分類", "0");
 root.Expanded = true;

 TreeNode electronics = new TreeNode("電器類", "1") { NavigateUrl = "~/Electric.aspx" };
 root.ChildNodes.Add(electronics);

 TreeNode food = new TreeNode("食品類", "2") { NavigateUrl = "~/Food.aspx" };
 TreeNode fruit = new TreeNode("水果", "21") { NavigateUrl = "~/Fruit.aspx" };
 TreeNode vegetable = new TreeNode("蔬菜", "22") { NavigateUrl = "~/Vegetable.aspx" };
 food.ChildNodes.Add(fruit);
 food.ChildNodes.Add(vegetable);
 root.ChildNodes.Add(food);

 TreeNode daily = new TreeNode("日用品類", "3") { NavigateUrl = "~/Commodity.aspx" };
 root.ChildNodes.Add(daily);

 TreeView1.Nodes.Add(root);
}

關鍵屬性與事件

屬性/事件說明
ShowLines顯示節點連線 (樹狀圖線條)
ShowExpandCollapse顯示展開/摺疊圖示 (+/-)
NodeIndent子節點縮排像素 (預設 19)
ExpandDepth初始展開層級 (0=僅根節點, -1=全部展開)
SelectedNodeChanged節點被選取時觸發 (需 `SelectAction="Select"`)
TreeNodePopulate動態載入子節點事件 (配合 `PopulateOnDemand="true"`)
SelectedNodeStyle / HoverNodeStyle選取/懸停節點樣式

樣式自訂 (內嵌或 CSS)


 
 
 
 
 
 

動態載入進階:PopulateOnDemand


 
 
 


protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
 string parentId = e.Node.Value;
 // 從資料庫查詢子分類
 DataTable dt = GetCategories(parentId);
 foreach (DataRow row in dt.Rows)
 {
 TreeNode child = new TreeNode(row["Name"].ToString(), row["Id"].ToString())
 {
 NavigateUrl = $"~/Category.aspx?id={row["Id"]}",
 PopulateOnDemand = HasChildren(row["Id"]) // 遞歸判斷
 };
 e.Node.ChildNodes.Add(child);
 }
 e.Node.PopulateOnDemand = false; // 已載入,關閉按需載入
}

資料繫結模式 (XmlDataSource / SiteMapDataSource)



 
 
 
 
 
 
 




總結

TreeView 靜態節點適合結構固定的導航選單,聲明式標記最直觀;動態建立適合權限控制、多語系;`PopulateOnDemand` 解決大量節點效能問題;`SiteMapDataSource` 整合站點地圖提供統一導航資料源。依專案需求選擇適當方式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved