webform 创建树
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace WebApplication4
{
public partial class WebForm1 : System.Web.UI.Page
{
DataTable _dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
_dt.Columns.Add("code");
_dt.Columns.Add("parentCode");
_dt.Columns.Add("name");
DataRow dr=_dt.NewRow();
dr[0]="01";
dr[1]="0";
dr[2]="顶层1";
_dt.Rows.Add(dr);
dr = _dt.NewRow();
dr[0] = "011";
dr[1] = "01";
dr[2] = "子层1";
_dt.Rows.Add(dr);
dr = _dt.NewRow();
dr[0] = "012";
dr[1] = "01";
dr[2] = "子层2";
_dt.Rows.Add(dr);
dr = _dt.NewRow();
dr[0] = "02";
dr[1] = "0";
dr[2] = "顶层2";
_dt.Rows.Add(dr);
dr = _dt.NewRow();
dr[0] = "021";
dr[1] = "02";
dr[2] = "子层1";
_dt.Rows.Add(dr);
dr = _dt.NewRow();
dr[0] = "022";
dr[1] = "02";
dr[2] = "子层2";
_dt.Rows.Add(dr);
dr = _dt.NewRow();
dr[0] = "0221";
dr[1] = "022";
dr[2] = "子子层1";
_dt.Rows.Add(dr);
BuildTree(null, _dt);
}
/// <summary>
/// 绑定树
/// </summary>
/// <param name="tn"></param>
private void BuildTree(TreeNode tn, DataTable dtDept)
{
int i;
// 空节点时创建根节点,父ID为0的当作根节点
if (tn == null)
{
this.TreeView1.Nodes.Clear();
for (i = 0; i < dtDept.Rows.Count; i++)
{
if (dtDept.Rows[i]["parentCode"].ToString() == "0")
{
TreeNode tmp = new TreeNode(dtDept.Rows[i]["name"].ToString());
tmp.Value = dtDept.Rows[i]["code"].ToString();
tmp.ToolTip = dtDept.Rows[i]["parentCode"].ToString();
tmp.Checked = true;
TreeView1.Nodes.Add(tmp);
}
}
// 循环递归创建树
for (i = 0; i < TreeView1.Nodes.Count; i++)
{
BuildTree(TreeView1.Nodes[i],dtDept);
}
}
else // 节点非空为递归调用
{
for (i = 0; i < dtDept.Rows.Count; i++)
{
if (tn.Value.ToString() == dtDept.Rows[i]["parentCode"].ToString())
{
TreeNode tmp = new TreeNode(dtDept.Rows[i]["name"].ToString());
tmp.Value = dtDept.Rows[i]["code"].ToString();
tmp.ToolTip = dtDept.Rows[i]["parentCode"].ToString();
tn.ChildNodes.Add(tmp);
}
}
for (i = 0; i < tn.ChildNodes.Count; i++)
{
BuildTree(tn.ChildNodes[i],dtDept);
}
}
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
this.Label1.Text = TreeView1.SelectedValue;
ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "updatePanel1show", "change_css('" + Label1.Text + "')", true);
TreeView1.ExpandAll();
}
}
}
webform 创建树的更多相关文章
- 使用Ext 创建树
ext使用的是ext3.4.0版本 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> < ...
- WebForm中创建树节点TreeNode
Tree: namespace ECTECH.NorthSJ.Web.SysData { public partial class testTree : BasePage { ; protected ...
- 用数据表创建树_delphi教程
数据库结构:字段 类型ID 整型 索引(无重复)name 文本father 整型 //tree初始化procedure TForm1.FormActivate(Sender: TObject);var ...
- 遍历json创建树状表(首先的前提条件是要引入jquery的jquery treeTable插件)
"root":{ "children":[ { "name":"AA", "children":[ ...
- Qt 使用大神插件快速创建树状导航栏
前言 本博客仅仅记录自己的采坑过程以及帮助网友避坑,方便以后快速使用自定义控件,避免重复出错. 下载插件 大神 Github Qt 自定义控件项目地址:https://github.com/feiya ...
- SAP CRM 树视图(TREE VIEW)
树视图可以用于表示数据的层次. 例如:SAP CRM中的组织结构数据可以表示为树视图. 在SAP CRM Web UI的术语当中,没有像表视图(table view)或者表单视图(form view) ...
- HTML5 程序设计 - 使用HTML5 Canvas API
请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...
- 二叉树的创建和遍历(C版和java版)
以这颗树为例:#表示空节点前序遍历(根->左->右)为:ABD##E##C#F## 中序遍历(左->根->右)为:#D#B#E#A#C#F# 后序遍历(左->右-> ...
- JavaScript高级编程 (1) - javscript是什么
<重温javascript>这是一系列 javascript 的学习笔记,部分内容摘自书本或者网络,我这里只是基于自己的理解进行了梳理整理. 一个完整的 javscript 实现是由以下3 ...
随机推荐
- osg,vtk,ogre的区别
osg使用过一年,阅读过一部分源代码,vtk也断续使用过三四年了,ogre研究的比较深入,基本上比较熟悉它的整体结构,说说个人的看法 vtk是一个算法库,里面包括了很多挺不错的算法,如果做有限元云图, ...
- 每周一荐:学习ACE一定要看的书
作 者:david++发布时间:2012/06/08 09:02文章地址:http://game-lab.org/?p=320 近两个月都在学习ACE,一个超级强大,也超级复杂的网络框架库.对ACE的 ...
- c#连接各种数据库
1.C#连接连接Access程序代码: ------------------------------------------------------------------------------- ...
- shell使用随笔
001 对文件某一列求和 awk '{sum += $collum};END {print sum}' /path/to/your/file 2 3 3 5 假设文件内容如上所示: # awk '{s ...
- You Only Live Once
从做 PreAngel 以来,每年我都会抽空去美国一两次,主要是在硅谷(湾区)一带见见当地的朋友,他们主要有 VC.创业者.斯坦福和伯克利的学生创业组织负责人.无线科技领域的各种组织机构负责人等,我一 ...
- cocos2d-x 开头配置(Windows 平台)
工欲善其事,必先利其器. 要使用 cocos2d-x 引擎,就要配置(或者安装)引擎,到 cocos2d-x 官网下载页下载引擎,官网给了2.x和3.x两个版本,我使用的是3.6的版本,3.x的版本类 ...
- 我的套路(windows):Jenkins+Jmeter+Ant持续集成
前期准备: 1.Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html 命令行输入:java -ver ...
- 简单通过java的socket&serversocket以及多线程技术实现多客户端的数据的传输,并将数据写入hbase中
业务需求说明,由于公司数据中心处于刚开始部署的阶段,这需要涉及其它部分将数据全部汇总到数据中心,这实现的方式是同上传json文件,通过采用socket&serversocket实现传输. 其中 ...
- Android Studio安装更新终极解决方式
之前写过一篇Android SDK无法更新的博文,其实该方式对Android Studio同样有效,大伙可以下载网盘中分享的小软件,若搜索到通道后提示需要更细,也可以选择更新.参考:http://bl ...
- Joomla 文件操作常用方法
今天介绍下joomla下文件操作常用方法,这些方法在文件读写,图片文件上传,等都有用处. jimport('joomla.filesystem.file'); $j = new JFile(); ge ...