C# TreeView讀取數(shù)據(jù)庫(kù)簡(jiǎn)單實(shí)例
效果:
數(shù)據(jù)庫(kù):
思路:
利用for遍歷,然后創(chuàng)建父節(jié)點(diǎn),再根據(jù)父節(jié)點(diǎn)創(chuàng)建出子節(jié)點(diǎn)。
代碼:
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 System.Collections;
using System.Configuration;
using System.Data.SqlClient;
namespace TreeView
{
public partial class TreeView : System.Web.UI.Page
{
string connection = ConfigurationManager.ConnectionStrings["SQLconnection"].ToString();
protected void Page_Load(object sender, EventArgs e)
{
select();
CreateTree();
}
DataSet ds = new DataSet();
public DataSet DataS(string sql, string tablename)
{
SqlConnection con = new SqlConnection(connection);
SqlDataAdapter sqlda = new SqlDataAdapter(sql, con);
sqlda.Fill(ds, tablename);
return ds;
}
//ParentMenu:父節(jié)點(diǎn),
//Grade:標(biāo)識(shí)這是第幾級(jí)節(jié)點(diǎn),
//Flag:標(biāo)識(shí)是不是尾結(jié)點(diǎn),1是 0 不是,
//href:指向的鏈接
public void select()
{
string sql = "select * from treeview";
ds = DataS(sql, "test");
}
public void CreateTree()
{
try
{
DataTable dt = ds.Tables["test"];
SortedList sl = new SortedList();
TreeNode tn = new TreeNode();
if (dt.Rows.Count <= 0)
{
tn.Text = "空";
tn.Value = "";
tn.NavigateUrl = "";
tn.Target = "";
tn.Expanded = false;
tn.SelectAction = TreeNodeSelectAction.SelectExpand;
}
else
{
for (int i = 0; i < dt.Rows.Count; i++)
{
//創(chuàng)建父節(jié)點(diǎn)
if (dt.Rows[i]["Grade"].ToString() == "1")
{
TreeNode node = new TreeNode();
node.Text = dt.Rows[i]["MenuName"].ToString();
node.Value = dt.Rows[i]["MenuID"].ToString();
if (dt.Rows[i]["Flag"].ToString() == "1")
{
node.NavigateUrl = dt.Rows[i]["href"].ToString();
tn.Target = "_bank";
}
node.Expanded = false;
node.SelectAction = TreeNodeSelectAction.Expand;
sl.Add(node.Value, node);
tv_Method.Nodes.Add(node);
}
else
{
//查找父節(jié)點(diǎn)
TreeNode ParentNod = (TreeNode)sl.GetByIndex(sl.IndexOfKey(dt.Rows[i]["ParentMenu"].ToString()));
//創(chuàng)建子節(jié)點(diǎn)
TreeNode tnChild = new TreeNode();
tnChild.Text = dt.Rows[i]["MenuName"].ToString();
tnChild.Value = dt.Rows[i]["MenuID"].ToString();
if (dt.Rows[i]["Flag"].ToString() == "1")
{
tnChild.NavigateUrl = dt.Rows[i]["href"].ToString();
tnChild.Target = "_bank";
}
tnChild.Expanded = false;
tnChild.SelectAction = TreeNodeSelectAction.Expand;
sl.Add(tnChild.Value, tnChild);
ParentNod.ChildNodes.Add(tnChild);
}
}
}
}
catch (Exception ex)
{
throw ex;
}
}
}
}
相關(guān)文章
winform天氣預(yù)報(bào)小工具(附源碼下載)
主要原理就是利用網(wǎng)上免費(fèi)的webservice獲取天氣數(shù)據(jù),需要的朋友可以參考下2012-03-03C#控制臺(tái)實(shí)現(xiàn)簡(jiǎn)單飛行棋游戲
這篇文章主要為大家詳細(xì)介紹了C#控制臺(tái)實(shí)現(xiàn)簡(jiǎn)單飛行棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07C#打開(kāi)揚(yáng)聲器的實(shí)操方法和代碼
在本篇文章中我們給大家分享的是關(guān)于C#如何打開(kāi)揚(yáng)聲器的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的讀者們學(xué)習(xí)下。2019-08-08C#實(shí)現(xiàn)的滾動(dòng)網(wǎng)頁(yè)截圖功能示例
這篇文章主要介紹了C#實(shí)現(xiàn)的滾動(dòng)網(wǎng)頁(yè)截圖功能,結(jié)合具體實(shí)例形式分析了C#圖形操作的相關(guān)技巧,需要的朋友可以參考下2017-07-07C#遞歸應(yīng)用之實(shí)現(xiàn)JS文件的自動(dòng)引用
這篇文章主要為大家詳細(xì)介紹了C#如何利用遞歸實(shí)現(xiàn)JS文件的自動(dòng)引用的功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以參考一下2023-03-03C#實(shí)現(xiàn)XSL轉(zhuǎn)換的方法
這篇文章主要介紹了C#實(shí)現(xiàn)XSL轉(zhuǎn)換的方法,結(jié)合實(shí)例分析了C#執(zhí)行XSL轉(zhuǎn)換XML的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11