treeview实例
aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TreeView.aspx.cs" Inherits="TreeView" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"><title>无标题页</title> </head> <body><form id="form1" runat="server"><div><asp:TreeView ID ="treeVType" runat ="server"></asp:TreeView></div></form> </body> </html>
aspx.cs代码:
using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using DBHelper;public partial class TreeView : System.Web.UI.Page {public static readonly string ConnectionString= ConfigurationManager.AppSettings["pubsConnectionString"].ToString();protected void Page_Load(object sender, EventArgs e){ if(!IsPostBack){DataSet ds=new DataSet();ds=SqlHelper.ExecuteDataSet(ConnectionString, CommandType.StoredProcedure, "proc_getallou", null);dt=ds.Tables[0];TreeViewLoad(dt);// }}public void TreeViewLoad(DataTable dataSource){if (dataSource == null)return;DataView athreads = null;athreads = new DataView(dataSource);athreads.RowFilter = "parentid =''";//过滤父节点ID空的节点 即为根节点foreach (DataRowView row in athreads){TreeNode threadNode = new TreeNode();threadNode.Text = stringformat(HttpUtility.HtmlEncode(row["nodename"].ToString()), 30);//截取长度if (GetStrlength(HttpUtility.HtmlEncode(row["nodename"].ToString())) > 30)//截取长度 {threadNode.ToolTip = HttpUtility.HtmlEncode(row["nodename"].ToString());}threadNode.Value = row["nodeid"].ToString();threadNode.Expand();//展开节点treeVType.Nodes.Add(threadNode);//往树添加根节点AddChilds(dataSource, threadNode);//调用循环添加节点方法 }}protected void AddChilds(DataTable dt, TreeNode node){DataView replies = new DataView(dt);replies.RowFilter = "parentid='" + node.Value + "'";//过滤父节点IDforeach (DataRowView row in replies){TreeNode replyNode = new TreeNode();replyNode.Text = stringformat(HttpUtility.HtmlEncode(row["nodename"].ToString()), 30);//截取长度if (GetStrlength(HttpUtility.HtmlEncode(row["nodename"].ToString())) > 30)//截取长度 {replyNode.ToolTip = HttpUtility.HtmlEncode(row["nodename"].ToString());}replyNode.Value = row["nodeid"].ToString();replyNode.Expand();node.ChildNodes.Add(replyNode);AddChilds(dt, replyNode);//调用循环添加节点方法 }}private int GetStrlength(string str){int t = 0;char[] q = str.ToCharArray();for (int i = 0; i < q.Length; i++){if ((int)q[i] >= 0x4E00 && (int)q[i] <= 0x9FA5)//是否汉字 {t += 2;}else{t++;}}return t;}private string stringformat(string str, int n){//////格式化字符串长度,超出部分显示省略号,区分汉字跟字母。汉字2个字节,字母数字一个字节/// string temp = string.Empty;if (System.Text.Encoding.Default.GetByteCount(str) <= n)//如果长度比需要的长度n小,返回原字符串 {return str;}else{int t = 0;char[] q = str.ToCharArray();for (int i = 0; i < q.Length && t < n; i++){if ((int)q[i] >= 0x4E00 && (int)q[i] <= 0x9FA5)//是否汉字 {temp += q[i];t += 2;}else{temp += q[i];t++;}}return (temp + "...");}} }
转载于:https://www.cnblogs.com/zcttxs/archive/2012/04/28/2475263.html
treeview实例相关推荐
- WPF TreeView 控件样式
TreeView 树视图(TreeView)控件以树的方式显示集合,可以显示层次关系. Nodes属性 该属性用于设计TreeView控件的节点. 具体方法 在TreeView的属性栏找到Nodes, ...
- 【Tkinter TreeView】
目录 一.前言 二.TreeView的引入 三.TreeView的属性 四.TreeView的item选项 五.列标识符 六.TreeView触发事件 七.TreeView点击事件 八.TreeVie ...
- 被逮到一个初始状态考虑不周的Bug
这两天是产品beta1以后进行的新一轮bug扫荡,beta1以前产品的bug降低到了大家非常满意的水平.但是beta1以后QA Team发飚,bug总数biu的一下又上升到人均20个上下,真是让人恼火 ...
- 前端开发基础知识汇总
一.HTML 1.前言与常用标签 浏览器 内核 备注 IE Trident IE.猎豹安全.360极速浏览器.百度浏览器 firefox Gecko 可惜这几年已经没落了,打开速度慢.升级频繁.猪一样 ...
- Spring Cloud微服务系统架构的一些简单介绍和使用
Spring Cloud 目录 特征 云原生应用程序 Spring Cloud上下文:应用程序上下文服务 引导应用程序上下文 应用程序上下文层次结构 改变Bootstrap的位置Properties ...
- TreeView 数据库绑定实例
菜单样式如下: 学校 班级1 学生1 班级2 ...
- treeview获取选中 vb_VB中TreeView控件实例(转)
[摘要:]在实际开发中,许多人不喜欢使用TreeView,主要是由于默认的TreeView是"只读"的,不支持添加.删除.编辑.调整节点位置等操作.本文通过一个TVEdit工程说明 ...
- treeview 展开节点php,javascript实现TreeView 无刷新展开的实例代码_javascript技巧
{ var tempObj = objchild[i]; if(tempObj.tagName=="INPUT" && tempObj.type == " ...
- tkinter的函数与实例
1.使用tkinter.Tk() 生成主窗口(root=tkinter.Tk()) root.title('标题名') 修改框体的名字,也可在创建时使用className参数来命名: root.res ...
- winform如何保持TreeView节点展开和折叠的状态
转载:http://blog.sina.com.cn/s/blog_6abcacf5010138q5.html private Hashtable NodesStatus = new Hashtabl ...
最新文章
- 【3月30日直播】新冠病毒全基因组测序——Midnight试剂盒及整体解决方案
- json_decode的结果为null,json_encode的结果为
- 使用com.sun.imageio.plugins.png.PNGMetadata读取图片的元数据 1
- 管理员以标准权限运行时
- ue4显示变量_UE4:快速入门蓝图(Blueprint)的方法之一
- window.onload=function(){};
- Spring框架----Spring的基于XML的AOP的实现
- [16]manjaro安装nvidia驱动
- 麦肯锡方法:解决问题的七个步骤
- AirServer第三方投屏软件v7.3.0中文版 (Airplay终端实用工具)
- Java处理音频文件wav转mp3/mp3转wav
- 如何快速搭建自己的github.io博客
- 语言表达能力强的人真的就情商高吗?
- VisionMobile Apple和三星利润的秘诀
- apple 西单大悦城维修_如何检查Apple是否已召回MacBook(免费维修)
- 华尔街英语VVIP课程 科学“配方”让英语学习精致化
- 60个Vue常见问题汇总及解决方案
- Android Wi-Fi 四次握手简介
- 【flask】Blueprint蓝图
- java mail 收 附件_使用 JavaMail 收发邮件,解决中文附件问题
热门文章
- 【2019西安邀请赛热身赛C:】python算数表达式求值+模拟int溢出
- Seaborn可视化 -- 分类统计图seaborn.catplot
- SLAM--李群李代数左扰动模型
- html图表实现,用 Flotr2 实现的 HTML5 图表
- 算法:指定位置翻转链表 rotate-list
- Charles Https 请求 SSL乱码问题 charles unreadable
- java IEnumerator_获取实现接口的所有类型
- 前端获取后台布尔类型_教育平台项目前端:视频讲解
- 树中两个节点的最低公共祖先
- Java反射机制--反射概述