FineUI控件之树的应用(二)
一、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控件之树的应用(二)的更多相关文章
- 如何优化 FineUI 控件库的性能,减少 80% 的数据上传量!
在开始正文之前,请帮忙为当前排名前 10 唯一的 .Net 开源软件 FineUI 投一票: 投票地址: https://code.csdn.net/2013OSSurvey/gitop/codevo ...
- WPF 曲线图表控件(自制)(二)
原文:WPF 曲线图表控件(自制)(二) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/koloumi/article/details/775218 ...
- Android开发:文本控件详解——TextView(二)文字跑马灯效果实现
一.需要使用的属性: 1.android:ellipsize 作用:若文字过长,控制该控件如何显示. 对于同样的文字“Android开发:文本控件详解——TextView(二)文字跑马灯效果实现”,不 ...
- FineUI控件集合
FineUI(开源版)基于 ExtJS 的开源 ASP.NET 控件库. using System; using System.Collections.Generic; using System.Te ...
- 自己定义控件三部曲视图篇(二)——FlowLayout自适应容器实现
前言:我最大的梦想,就是有一天.等老了坐在摇椅上回望一生,有故事给孩子们讲--. 相关文章: <Android自己定义控件三部曲文章索引>:http://blog.csdn.net/har ...
- Winform中使用printDocument控件打印pictureBox中的二维码照片
场景 Winform中使用zxing和Graphics实现自定义绘制二维码布局: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- PyQt5复杂控件(树控件、选项卡控件(滚动条控件、多文档控件、停靠控件)
1.树控件的基本使用方法QTreeWidget'''QTreeWidget树控件的使用方法添加图标,添加表格,添加复选框等'''from PyQt5.QtWidgets import *from Py ...
- .NET中的FileUpload控件的使用-原生JS(二)
本篇使用原生JS进行数据传输,使用FileUpload控件上传文件,适配IE. HTML <div class="container"> <div class=& ...
- android(eclipse)界面控件以及活动总结(二)
用户界面以及活动总结: (复习时忘了的特别标记了下划线,补充的用了红色) 1用户界面: ~android:id=""专门用于找到指定界面的索引 如果要在后面的程序中调用该控件,则一 ...
随机推荐
- IActiveView 接口 - 浅谈
IActiveView 和 IMap以其 Map, PageLayout之间的关系. 在ArcMap中, PageLayout 和 Map分别对应不同的视图: layout 和data view.在同 ...
- .NET Linq获取一个集合中的一个或多个属性,赋值到新的类对象
//得到自定义的list var list = schoolGradeClassModelList.Select(x => new DropDownListData() { DataTextFi ...
- 3种创建、调用JavaScript对象的方法
hey you guys,两个月没有写技术博客了.作为一名有理想.有抱负的程序员,两个月不写技术博客,真该打.业精于勤,荒于嬉.行成于思,毁于随.勤奋是必不可少的,今后养成一周至少一篇博客的习惯.好了 ...
- ZOJ3558 How Many Sets III(公式题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud How Many Sets III Time Limit: 2 Seconds ...
- Http服务器性能测试工具ab..
-A auth-username:password 对服务器提供BASIC认证信任.用户名和密码由一个:隔开,并以base64编码形式发送,无论服务器是否需要(即,是否发送了401认证需求代码),此字 ...
- 3月19日 html(一) html基础内容
---恢复内容开始--- 今天学习了html的第一节课,是些比较简单的基础知识,知道如何向网页里添加文本.图片.表格.超链接之类的,如何去编写这些代码. html(hyper text makeup ...
- Python新手学习基础之循环结构——For语句
for语句 在Python里,循环语句除了while语句,还有for语句. 通常我们用for循环来遍历(按约定的顺序,对每个点进行访问,且只做一次访问)有序列的内容,比如列表和字符串(列表内容我们会在 ...
- flask_socketio 使用范例
最近看flask有关的文档.想security, sqlalchemy, jwt等等相关的插件都没有问题.唯独这个socketio, 跟着官方文档一起蒙, 如果不看github上面的范例还真不好懂. ...
- 本原串(HDU 2197 快速幂)
本原串 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 转:从BeagleBone谈AM335x硬件系统设计
链接:http://blog.chinaunix.net/uid-730738-id-3266690.html 作者:chenzhufly 从BeagleBone谈AM335x硬件系统设计 日期 ...