ASP.NET TreeView控件的使用


<asp:TreeView ID="TreeView2" runat="server"></asp:TreeView>

數據庫:

 

 前台代碼:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="TreeView.index" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server">
<Nodes>
<asp:TreeNode Text="新建節點" Value="新建節點">
<asp:TreeNode Text="新建節點" Value="新建節點"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="新建節點" Value="新建節點">
<asp:TreeNode Text="新建節點" Value="新建節點"></asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
<h2>上面是視圖中編輯,下面是代碼中添加</h2>
<asp:TreeView ID="TreeViewdb" runat="server"></asp:TreeView>
<h2>下面是代碼中通過數據庫添加</h2>
<asp:TreeView ID="TreeView2" runat="server"></asp:TreeView>
</div>
</form>
</body>
</html>

 

后台代碼:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;



using System.Data;
using BLL;
namespace TreeView
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.TreeViewdb.Dispose();//清理
TreeNodeCollection tnc = this.TreeViewdb.Nodes;//表示根結點集合
TreeNode tnNodel = new TreeNode();
tnNodel.Text = "這是一個根結點";
tnc.Add(tnNodel);
TreeNode t2 = new TreeNode();
t2.Text = "這是第二個根結點";
tnc.Add(t2);
//
TreeNode tnNode1 = new TreeNode();
tnNode1.Text = "這是根結點的子節點";
tnNodel.ChildNodes.Add(tnNode1);
/******************************************************
* DataSet DataTable DataView
* 都是二維的表格,DataSet是數據庫查詢出來的,結果集
* 可以多個表格,(返回多張表),就是 .Table["表名"]或者 .Table["0"]或者.Table["1"]
* 一般來說 不管是單表查詢還是多表查詢 最后結果都是一張表所以 就 .Table["0"]就夠用了
* DataTable dtb= DataSet.Table["0"]
* DataView .Table=dtb
* 關於 .RowFilter="string",這里是過濾 一部分,這里面是條件 就像SQL查詢
*
* **********************************************/

///////
InitTree(this.TreeView2.Nodes, "0");
}
}
/// <summary>
/// 遞歸初始化TreeView
/// </summary>
/// <param name="tnc">結點集合</param>
/// <param name="parentid">父節點id</param>
private void InitTree(TreeNodeCollection tnc, string parentid)
{
TreeNode node;
DataView dv = new DataView();
//綁定(把DataSe中的Table[0] 綁定到 DataView上,進行篩選)
dv.Table = BLL.UserBLL.allNodes();
//篩選出 對應屬性,(父節點id 符合),其余去掉。
dv.RowFilter = "ParentNodeId=" + parentid; //
foreach (DataRowView drv in dv)
{
// DataRowView一行
node = new TreeNode();
node.Value = drv["NodeId"].ToString();
node.Text = drv["DisplayName"].ToString();
//把新結點遞添加到結點集合上去
tnc.Add(node);
//遞歸
InitTree(node.ChildNodes, node.Value);
}
}
}
}

 

SysFun.cs (Model)

using System;
using System.Collections.Generic;
using System.Text;

namespace Model
{
/// <summary>
/// TreeView的結點 類
/// </summary>
public class SysFun
{
private int nodeId;
private string displayName;
private string nodeUrl;
private string parentNodeId;

public int NodeId { get => nodeId; set => nodeId = value; }
public string DisplayName { get => displayName; set => displayName = value; }
public string NodeUrl { get => nodeUrl; set => nodeUrl = value; }
public string ParentNodeId { get => parentNodeId; set => parentNodeId = value; }
}
}

 

 

 

 

————————————————
版權聲明:本文為CSDN博主「涵涵YH」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u012997311/article/details/78404483


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM