一、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. centos上如何安装git

    安装依赖包 1.yum -y install zlib-devel openssl-devel perl cpio expat-devel gettext-devel 2.yum install au ...

  2. ie6里png图片不透明

    ie6下img图片或背景图片为png时,图片变成了一片黑色: 图中的jquery-timepicker的两个黑方块和img就是由此原因引用的.解决方法:由Drew Diller提供,对img.back ...

  3. 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。

    #include <iostream> using namespace std; int main() { int i,j,n,m,k,*p,num[100];k=m=0;   cin&g ...

  4. CI框架中遇见的一些错误和解决方法 笔记

    ps:根据经验不断修改和更新,欢迎指出错误~ 1. An uncaught Exception was encountered Type: Exception Message: Session: Co ...

  5. 创建C#DLL

    1. 创建classlibrary 2.编写一个COM接口和一个COM类 [Guid("DBE0E8C4-1C61-41f3-B6A4-4E2F353D3D05")] public ...

  6. matlab读取多幅图片,并对读取的图片降采样和双三次插值

    clear all clc im = {}; %%创建字典im以保存读取的图片 dis = dir('C:\Users\KCl\Documents\MATLAB\SRCNN\Set5\*.bmp'); ...

  7. 如何用js检测手机是否安装某个app

    问题描述 如果本地安装了app那么直接打开,否则苹果要跳转到app-store,安卓则要跳到对应的市场 解决方案 一 //html代码中 的 a 标签,以微信为例,默认的是调用weixin schem ...

  8. 使用typedef语句定义数组类型

    使用typedef语句定义数组类型     1. 一维数组类型的定义格式 typedef <元素类型关键字><数组类型名>[<常量表达式>]; 例如: (1) ty ...

  9. 基于JDK6的JAX-WX为客户端提供XML与JSON格式数据服务,以及客户端采用AXIS调用案例

    1:WebService服务端工程目录如下: 需要第三方jar包:gson-2.2.4.jar\javax.xml.bind.jar\commons-lang-2.5.jar 源码如下: packag ...

  10. android-support-v7-appcompat的配置使用

    直接将android-support-v7-appcompat.jar包拷贝到项目的libs/下面是不能使用的,具体做法官方文档给出了详细说明: (开发环境是ADT) Using Eclipse Cr ...