点滴积累【C#】---TreeView读取数据库
2013-12-06 16:29
831 查看
效果:
数据库:
思路:
利用for遍历,然后创建父节点,再根据父节点创建出子节点。
代码:
数据库:
思路:
利用for遍历,然后创建父节点,再根据父节点创建出子节点。
代码:
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:父节点, //Grade:标识这是第几级节点, //Flag:标识是不是尾结点,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++) { //创建父节点 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 { //查找父节点 TreeNode ParentNod = (TreeNode)sl.GetByIndex(sl.IndexOfKey(dt.Rows[i]["ParentMenu"].ToString())); //创建子节点 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; } } } }
相关文章推荐
- 点滴积累【C#】---C#实现上传word以流形式保存到数据库和读取数据库中的word文件。
- 点滴积累【C#】---C#实现上传word将路径保存到数据库,文件保存到服务器。并且按照名称读取服务器的word
- 点滴积累【ASP.NET】---ASP.NET TreeView读取数据库
- 点滴积累【C#】---C#实现上传照片到物理路径,并且将地址保存到数据库,
- 点滴积累【C#】---操作xml,将xml数据显示到treeview
- C# TreeView读取数据库简单实例
- [C#]读取数据库,动态生成TreeView[递归]
- 点滴积累【C#】---简单嵌套flash读取数据
- 点滴积累【C#】---将Excel数据导入到数据库
- C# TreeView读取数据库简单实例
- 终于可以让Flash基于C#完美操作数据库了,想开发全flash的,全部读取数据库的个人BLOG...
- C#点滴积累之过程篇
- C# 读取 Oracle 数据库表的例子 SALE_REPORT
- C#应用程序treeview绑定数据库
- C#应用程序treeview绑定数据库
- c#制作图表(从数据库读取数据,制作柱状图,扇形图)
- C# 异步读取数据库里面的数据与绑定UI的解决办法
- C#+ASP.NET+Oracle时积累的备忘点滴(来自老猫的理想)
- c# winform项目treeview控件绑定本地电脑磁盘信息,读取文件夹信息,显示文件夹内文件内容
- C#读取数据库返回树形集合(DataSetToList)