WebForm中创建树节点TreeNode
Tree:
- namespace ECTECH.NorthSJ.Web.SysData
- {
- public partial class testTree : BasePage
- {
- protected int roleId = ;
- protected void Page_Load(object sender, EventArgs e)
- {
- if(!IsPostBack)
- {
- List<Model.Funcs> list = new BLL.RoleFuncs().GetRFunc("", roleId);
- foreach(Model.Funcs func in list)
- {
- FineUI.TreeNode node = new TreeNode() { Text = func.Name, NodeID = func.ID.ToString(), Leaf = false, EnableCheckBox=true };
- LoadChildNode(func.FuncCode,roleId, node);
- tree1.Nodes.Add(node);
- }
- }
- }
- private void LoadChildNode(string parentCode, int roleId,TreeNode node)
- {
- List<Model.Funcs> list = new BLL.RoleFuncs().GetRFunc(parentCode, roleId);
- foreach (Model.Funcs func in list)
- {
- TreeNode nodeChild = new TreeNode() { Text = func.Name, NodeID = func.ID.ToString(), Leaf = true, EnableCheckBox = true };
- node.Nodes.Add(nodeChild);
- }
- }
- protected void btn1_Click(object sender, EventArgs e)
- {
- string[] ids = tree1.SelectedNodeIDArray;
- string idStr = string.Join(",", ids);
- lbResult.Text = idStr;
- }
- }
Form:
- <form id="form1" runat="server">
- <div>
- <x:PageManager ID="PageManager1" AutoSizePanelID="RegionPanel1" runat="server">
- </x:PageManager>
- <x:Tree ID="tree1" EnableMultiSelect="true" runat="server"></x:Tree>
- <x:Button ID="btn1" Text="确定" runat="server" OnClick="btn1_Click"></x:Button>
- <x:Label ID="lbResult" EncodeText="false" runat="server"></x:Label>
- </div>
- </form>
树节点,绑定到DataTable:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Data;
- using FineUI;
- namespace Test_Web1
- {
- public partial class TreeTable : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- if(! IsPostBack)
- {
- LoadData();
- }
- }
- private void LoadData()
- {
- DataTable dt = CreateTable();
- DataSet ds = new DataSet();
- ds.Tables.Add(dt);
- ds.Relations.Add("treeRelation", ds.Tables[].Columns["ID"],ds.Tables[].Columns["PID"]);
- foreach(DataRow row in ds.Tables[].Rows)
- {
- if(row["PID"]==DBNull.Value)
- {
- TreeNode node = new TreeNode();
- node.Text = row["Name"].ToString();
- node.NodeID = row["ID"].ToString();
- node.Expanded = true;
- Tree1.Nodes.Add(node);
- ResolveSubTree(row, node);
- }
- }
- }
- private void ResolveSubTree(DataRow row, TreeNode node)
- {
- DataRow[] rows = row.GetChildRows("treeRelation");
- if(rows.Length>)
- {
- foreach(DataRow r in rows)
- {
- TreeNode n = new TreeNode();
- n.Text = r["Name"].ToString();
- n.NodeID = r["ID"].ToString();
- n.ParentNode = node;
- node.Nodes.Add(n);
- ResolveSubTree(r, n);
- }
- }
- }
- public DataTable CreateTable()
- {
- DataTable dt = new DataTable();
- dt.Columns.Add("ID", typeof(string));
- dt.Columns.Add("Name", typeof(string));
- dt.Columns.Add("PID", typeof(string));
- DataRow row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "四川省";
- row["PID"] = DBNull.Value;
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "江苏省";
- row["PID"] = DBNull.Value;
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "苏州市";
- row["PID"] = "";
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "常州市";
- row["PID"] = "";
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "镇江市";
- row["PID"] = "";
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "无锡市";
- row["PID"] = "";
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "达州市";
- row["PID"] = "";
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "广元市";
- row["PID"] = "";
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "宣汉县";
- row["PID"] = "";
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["ID"] = "";
- row["Name"] = "大竹县";
- row["PID"] = "";
- dt.Rows.Add(row);
- return dt;
- }
- }
- }
WebForm中创建树节点TreeNode的更多相关文章
- webform 创建树
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
- PAT树_层序遍历叶节点、中序建树后序输出、AVL树的根、二叉树路径存在性判定、奇妙的完全二叉搜索树、最小堆路径、文件路由
03-树1. List Leaves (25) Given a tree, you are supposed to list all the leaves in the order of top do ...
- [LeetCode] Inorder Successor in BST 二叉搜索树中的中序后继节点
Given a binary search tree and a node in it, find the in-order successor of that node in the BST. No ...
- DS Tree 已知后序、中序 => 建树 => 求先序
注意点: 和上一篇的DS Tree 已知先序.中序 => 建树 => 求后序差不多,注意的地方是在aftorder中找根节点的时候,是从右往左找,因此递归的时候注意参数,最好是拿纸和笔模拟 ...
- DS Tree 已知先序、中序 => 建树 => 求后序
参考:二叉树--前序和中序得到后序 思路历程: 在最初敲的时候,经常会弄混preorder和midorder的元素位置.大体的思路就是在preorder中找到根节点(根节点在序列的左边),然后在mid ...
- 【Ext.Net学习笔记】01:在ASP.NET WebForm中使用Ext.Net
Ext.NET是基于跨浏览器的ExtJS库和.NET Framework的一套支持ASP.NET AJAX的开源Web控件,包含有丰富的Ajax运用,其前身是Coolite. 下载地址:http:// ...
- Ext.Net学习笔记01:在ASP.NET WebForm中使用Ext.Net
Ext.Net是一个对ExtJS进行封装了的.net控件库,可以在ASP.NET WebForm和MVC中使用.从今天开始记录我的学习笔记,这是第一篇,今天学习了如何在WebForm中使用Ext.Ne ...
- [Swift]LeetCode285. 二叉搜索树中的中序后继节点 $ Inorder Successor in BST
Given a binary search tree and a node in it, find the in-order successor of that node in the BST. Th ...
- [转]WebForm中使用MVC
本文转自:https://www.cnblogs.com/encoding/articles/3556046.html 前言 掐指一算,3年没写博了,好懒的说... 众所周知,MVC现在越来越火了,不 ...
随机推荐
- VisualStudio卸载后无法再次安装的解决方法
解决方法如下: 1.删除 Visual Studio 2013 安装目录文件夹 Visual Studio 12.0 2.win+R 输入 %UserProfile%\Appdata\Local\Mi ...
- JAVA8新特性——方法引用
JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ 在Lamda新特性的支持下,JAVA8中可以使用lamda表达式来创建匿名方法.然而,有时候我们仅仅是需要调用一个已存在的方法(如 ...
- Groovy 配置环境变量
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70313790 本文出自[赵彦军的博客] 概念 Groovy 配置环境变量 开发工具 ...
- js的深拷贝特别注意this的深拷贝
原生的,jquery的extend,和angular的copy 我们深拷贝的根本原因是为了不改变原来对象的值. <script type="text/javascript"& ...
- Canvas - Web API
<canvas> 是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形.例如,它可以用于绘制图形,制作照片,创建动画,甚至可以进行实时视频处理或渲染. Mozi ...
- phalcon: 开启模板缓存和缓存路径
/** * 设置view */ $di->set('view', function () use ($config) { $view = new \Phalcon\Mvc\View(); $vi ...
- jQuery实现表格冻结行和列
前几天,遇到一个需求是要将表格的前几行和前几列冻结即固定,就是在有滚动条的情况下,保持那几行和那几列固定,这个需求其实是一个非常常见的需求,因为在涉及好多行和列时,在拖动滚动条时,我们需要知道每行每列 ...
- django 使用多说 评论系统
效果图 方法:登录多说网站,创建站点.然后有下面的提示 ************************************************* 复制以下代码,并粘帖到您网页代码<bo ...
- hdu 5238 Calculator(线段树,中国剩余定理¥)
Calculator Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Tot ...
- HDU 1711 kmp+离散化
http://acm.hdu.edu.cn/showproblem.php?pid=1711 Number Sequence Time Limit: 10000/5000 MS (Java/Other ...