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=""专门用于找到指定界面的索引 如果要在后面的程序中调用该控件,则一 ...
随机推荐
- ORA-01172 ORA-01151
今天发现服务器的9号硬盘坏了,因做了RAID5,报障后也没理会,过了一会儿,有人反应说报表运行不出来,发现服务器所有的硬盘都不工作了,界面也没有反应,就强行关机,再开机可以进入系统,等维修人员来换了新 ...
- iOS_SN_CoreDate(一)封装使用
看过一篇封装CoreData的文章挺不错,有基本使用封装,但是没有写怎么与tableView结合使用,我自己用的过程有些小波折,自己做了一个demo,大家可以看源码一些基本使用应该不难了, 原文:ht ...
- 深入理解REST与Servlet架构的区别
本身这个比较是个伪命题,因为 RESTful Service是一个软件架构“风格”, 而servlet是java 服务端的一种技术 之所以把它们拿出来比较,是由于它们代表了两个时代的技术风格与架构.下 ...
- Eclipse远程提交hadoop集群任务
文章概览: 1.前言 2.Eclipse查看远程hadoop集群文件 3.Eclipse提交远程hadoop集群任务 4.小结 1 前言 Hadoop高可用品台搭建完备后,参见<Hadoop ...
- 获取aplicationContext对象,从而获取任何注入的对象
在Servlet中 方法一: 从ServletContext 取出 Spring容器上下文 ApplicationContext applicationContext = (ApplicationCo ...
- Flask学习记录之MarkDown编辑文本
为了让网页支持markdown编辑文本,使用如下了4个库 PageDown : 在前端提供一个可以实时将markdown内容转换成html文本进行效果预览的编辑器 Flask-PageDown: 这个 ...
- Android 颜色大全 (colors.xml )
<resources> <color name="pink">#ffc0cb</color><!--粉红色 --> <colo ...
- 请转到http://zhuangyongyao.com
个人博客搬迁到http://zhuangyongyao.com.
- Servlet 中的out.print()与out.writer()的区别
PrintWriter out = response.getWriter(); out.print(obj)其源码如下: public void print(Object obj) { write(S ...
- 推荐2个小工具 .NET reflector resharper