一、Tree控件应用

  <f:PageManager ID="PageManager1" runat="server" />
<f:Tree ID="Tree1" Width="650px" ShowHeader="true" Title="树控件" EnableFrame="true" EnableCollapse="true"
runat="server">
<Nodes>
<f:TreeNode Text="中国" Expanded="true">
<f:TreeNode Text="111" Expanded="true">
<f:TreeNode Text="222" NodeID="zhumadian">
<f:TreeNode Text="333" Leaf="false" NodeID="suiping">
<f:TreeNode Text="444" Leaf="false" NodeID="huaishu">
<f:TreeNode Text="555" NodeID="chenzhuang">
</f:TreeNode>
</f:TreeNode>
</f:TreeNode>
</f:TreeNode>
<f:TreeNode Text="666" NodeID="luohe" />
</f:TreeNode>
<f:TreeNode Text="777" Expanded="true" NodeID="anhui">
<f:TreeNode Text="888" Expanded="true" NodeID="hefei">
<f:TreeNode Text="999" NodeID="golden">
</f:TreeNode>
<f:TreeNode Text="000" NodeID="ustc">
</f:TreeNode>
</f:TreeNode>
</f:TreeNode>
</f:TreeNode>
</Nodes>
</f:Tree>

二、后台代码 动态生成Tree 帮定数据库

   /// <summary>
/// 绑定Tree
/// </summary>
/// <returns></returns>
private DataSet GetDataSet()
{
CommUserBLL bll = new CommUserBLL();
DataSet ds = bll.GetAllList(); foreach (DataRow row in ds.Tables[].Rows)
{
FineUI.TreeNode node = new FineUI.TreeNode();
if (row.IsNull("PersonGroupID"))
{
node.Text = row["CompName"].ToString();
node.IconUrl = "~/icon/star.png";
node.Expanded = true;
node.EnableCheckBox = true;
node.EnablePostBack = true;
node.AutoPostBack = true;
Tree1.Nodes.Add(node);
LoadTree(node);
}
}
return ds;
} /// <summary>
/// 加载子节点
/// </summary>
/// <param name="treeNode"></param>
private void LoadTree(FineUI.TreeNode treeNode)
{
CommUserBLL bll = new CommUserBLL();
DataSet dept = bll.GetDepetName();
foreach (DataRow row in dept.Tables[].Rows)
{
FineUI.TreeNode node2 = new FineUI.TreeNode();
node2.Expanded = true;
node2.EnableCheckBox = true;
node2.EnablePostBack = true;
node2.AutoPostBack = true;
node2.IconUrl = "~/icon/star.png";
node2.Text = row["DeptName"].ToString(); treeNode.Nodes.Add(node2);
LoadPerson(row, node2);
}
} /// <summary>
/// 加载叶子节点
/// </summary>
/// <param name="dr"></param>
/// <param name="treeNode"></param>
private void LoadPerson(DataRow dr, FineUI.TreeNode treeNode)
{
CommUserBLL bll = new CommUserBLL();
StringBuilder str = new StringBuilder();
DataSet deptPerson = bll.GetList(" deptname = '" + dr["DeptName"].ToString() + "'");
foreach (DataRow row in deptPerson.Tables[].Rows)
{
FineUI.TreeNode node3 = new FineUI.TreeNode(); node3.EnablePostBack = true;
node3.AutoPostBack = true;
node3.Expanded = true;
node3.EnableCheckBox = true; node3.IconUrl = "~/icon/star.png"; node3.Text = row["PersonName"].ToString() + "(" + row["PhoneNo"].ToString() + ")";
treeNode.Nodes.Add(node3);
}
} /// <summary>
/// 选择节点事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Tree1_NodeCheck(object sender, FineUI.TreeCheckEventArgs e)
{
if (!e.Node.Leaf)
{
CheckTreeNode(e.Node.Nodes, e.Checked);
}
FineUI.TreeNodeCollection nodes = Tree1.Nodes; StringBuilder sbTree = new StringBuilder(); sbTree = GetTreeNode(nodes, sbTree);
tbxMessPre.Text = sbTree.ToString();
} /// <summary>
/// 获得选择节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="strTree"></param>
/// <returns></returns>
private StringBuilder GetTreeNode(FineUI.TreeNodeCollection nodes, StringBuilder strTree)
{
foreach (FineUI.TreeNode node in nodes)
{
if (node.Leaf)
{
if (node.Checked)
{
strTree.Append(node.Text.Trim() + ",");
}
}
else
{
GetTreeNode(node.Nodes, strTree);
}
}
return strTree;
} /// <summary>
/// 检查选中节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="isChecked"></param>
private void CheckTreeNode(FineUI.TreeNodeCollection nodes, bool isChecked)
{
foreach (FineUI.TreeNode node in nodes)
{
node.Checked = isChecked;
if (!node.Leaf)
{
CheckTreeNode(node.Nodes, isChecked);
}
}
}

FineUI控件之树的应用(二)的更多相关文章

  1. 如何优化 FineUI 控件库的性能,减少 80% 的数据上传量!

    在开始正文之前,请帮忙为当前排名前 10 唯一的 .Net 开源软件 FineUI 投一票: 投票地址: https://code.csdn.net/2013OSSurvey/gitop/codevo ...

  2. WPF 曲线图表控件(自制)(二)

    原文:WPF 曲线图表控件(自制)(二) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/koloumi/article/details/775218 ...

  3. Android开发:文本控件详解——TextView(二)文字跑马灯效果实现

    一.需要使用的属性: 1.android:ellipsize 作用:若文字过长,控制该控件如何显示. 对于同样的文字“Android开发:文本控件详解——TextView(二)文字跑马灯效果实现”,不 ...

  4. FineUI控件集合

    FineUI(开源版)基于 ExtJS 的开源 ASP.NET 控件库. using System; using System.Collections.Generic; using System.Te ...

  5. 自己定义控件三部曲视图篇(二)——FlowLayout自适应容器实现

    前言:我最大的梦想,就是有一天.等老了坐在摇椅上回望一生,有故事给孩子们讲--. 相关文章: <Android自己定义控件三部曲文章索引>:http://blog.csdn.net/har ...

  6. Winform中使用printDocument控件打印pictureBox中的二维码照片

    场景 Winform中使用zxing和Graphics实现自定义绘制二维码布局: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  7. PyQt5复杂控件(树控件、选项卡控件(滚动条控件、多文档控件、停靠控件)

    1.树控件的基本使用方法QTreeWidget'''QTreeWidget树控件的使用方法添加图标,添加表格,添加复选框等'''from PyQt5.QtWidgets import *from Py ...

  8. .NET中的FileUpload控件的使用-原生JS(二)

    本篇使用原生JS进行数据传输,使用FileUpload控件上传文件,适配IE. HTML <div class="container"> <div class=& ...

  9. android(eclipse)界面控件以及活动总结(二)

    用户界面以及活动总结: (复习时忘了的特别标记了下划线,补充的用了红色) 1用户界面: ~android:id=""专门用于找到指定界面的索引 如果要在后面的程序中调用该控件,则一 ...

随机推荐

  1. ORA-01172 ORA-01151

    今天发现服务器的9号硬盘坏了,因做了RAID5,报障后也没理会,过了一会儿,有人反应说报表运行不出来,发现服务器所有的硬盘都不工作了,界面也没有反应,就强行关机,再开机可以进入系统,等维修人员来换了新 ...

  2. iOS_SN_CoreDate(一)封装使用

    看过一篇封装CoreData的文章挺不错,有基本使用封装,但是没有写怎么与tableView结合使用,我自己用的过程有些小波折,自己做了一个demo,大家可以看源码一些基本使用应该不难了, 原文:ht ...

  3. 深入理解REST与Servlet架构的区别

    本身这个比较是个伪命题,因为 RESTful Service是一个软件架构“风格”, 而servlet是java 服务端的一种技术 之所以把它们拿出来比较,是由于它们代表了两个时代的技术风格与架构.下 ...

  4. Eclipse远程提交hadoop集群任务

    文章概览: 1.前言 2.Eclipse查看远程hadoop集群文件 3.Eclipse提交远程hadoop集群任务 4.小结   1 前言 Hadoop高可用品台搭建完备后,参见<Hadoop ...

  5. 获取aplicationContext对象,从而获取任何注入的对象

    在Servlet中 方法一: 从ServletContext 取出 Spring容器上下文 ApplicationContext applicationContext = (ApplicationCo ...

  6. Flask学习记录之MarkDown编辑文本

    为了让网页支持markdown编辑文本,使用如下了4个库 PageDown : 在前端提供一个可以实时将markdown内容转换成html文本进行效果预览的编辑器 Flask-PageDown: 这个 ...

  7. Android 颜色大全 (colors.xml )

    <resources> <color name="pink">#ffc0cb</color><!--粉红色 --> <colo ...

  8. 请转到http://zhuangyongyao.com

    个人博客搬迁到http://zhuangyongyao.com.

  9. Servlet 中的out.print()与out.writer()的区别

    PrintWriter out = response.getWriter(); out.print(obj)其源码如下: public void print(Object obj) { write(S ...

  10. 推荐2个小工具 .NET reflector resharper