aspx页面:

View Code

<%@ 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代码:

View Code

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实例相关推荐

  1. WPF TreeView 控件样式

    TreeView 树视图(TreeView)控件以树的方式显示集合,可以显示层次关系. Nodes属性 该属性用于设计TreeView控件的节点. 具体方法 在TreeView的属性栏找到Nodes, ...

  2. 【Tkinter TreeView】

    目录 一.前言 二.TreeView的引入 三.TreeView的属性 四.TreeView的item选项 五.列标识符 六.TreeView触发事件 七.TreeView点击事件 八.TreeVie ...

  3. 被逮到一个初始状态考虑不周的Bug

    这两天是产品beta1以后进行的新一轮bug扫荡,beta1以前产品的bug降低到了大家非常满意的水平.但是beta1以后QA Team发飚,bug总数biu的一下又上升到人均20个上下,真是让人恼火 ...

  4. 前端开发基础知识汇总

    一.HTML 1.前言与常用标签 浏览器 内核 备注 IE Trident IE.猎豹安全.360极速浏览器.百度浏览器 firefox Gecko 可惜这几年已经没落了,打开速度慢.升级频繁.猪一样 ...

  5. Spring Cloud微服务系统架构的一些简单介绍和使用

    Spring Cloud 目录 特征 云原生应用程序 Spring Cloud上下文:应用程序上下文服务 引导应用程序上下文 应用程序上下文层次结构 改变Bootstrap的位置Properties ...

  6. TreeView 数据库绑定实例

    菜单样式如下:   学校                 班级1                         学生1                 班级2                     ...

  7. treeview获取选中 vb_VB中TreeView控件实例(转)

    [摘要:]在实际开发中,许多人不喜欢使用TreeView,主要是由于默认的TreeView是"只读"的,不支持添加.删除.编辑.调整节点位置等操作.本文通过一个TVEdit工程说明 ...

  8. treeview 展开节点php,javascript实现TreeView 无刷新展开的实例代码_javascript技巧

    { var tempObj = objchild[i]; if(tempObj.tagName=="INPUT" && tempObj.type == " ...

  9. tkinter的函数与实例

    1.使用tkinter.Tk() 生成主窗口(root=tkinter.Tk()) root.title('标题名') 修改框体的名字,也可在创建时使用className参数来命名: root.res ...

  10. winform如何保持TreeView节点展开和折叠的状态

    转载:http://blog.sina.com.cn/s/blog_6abcacf5010138q5.html private Hashtable NodesStatus = new Hashtabl ...

最新文章

  1. 【3月30日直播】新冠病毒全基因组测序——Midnight试剂盒及整体解决方案
  2. json_decode的结果为null,json_encode的结果为
  3. 使用com.sun.imageio.plugins.png.PNGMetadata读取图片的元数据 1
  4. 管理员以标准权限运行时
  5. ue4显示变量_UE4:快速入门蓝图(Blueprint)的方法之一
  6. window.onload=function(){};
  7. Spring框架----Spring的基于XML的AOP的实现
  8. [16]manjaro安装nvidia驱动
  9. 麦肯锡方法:解决问题的七个步骤
  10. AirServer第三方投屏软件v7.3.0中文版 (Airplay终端实用工具)
  11. Java处理音频文件wav转mp3/mp3转wav
  12. 如何快速搭建自己的github.io博客
  13. 语言表达能力强的人真的就情商高吗?
  14. VisionMobile Apple和三星利润的秘诀
  15. apple 西单大悦城维修_如何检查Apple是否已召回MacBook(免费维修)
  16. 华尔街英语VVIP课程 科学“配方”让英语学习精致化
  17. 60个Vue常见问题汇总及解决方案
  18. Android Wi-Fi 四次握手简介
  19. 【flask】Blueprint蓝图
  20. java mail 收 附件_使用 JavaMail 收发邮件,解决中文附件问题

热门文章

  1. 【2019西安邀请赛热身赛C:】python算数表达式求值+模拟int溢出
  2. Seaborn可视化 -- 分类统计图seaborn.catplot
  3. SLAM--李群李代数左扰动模型
  4. html图表实现,用 Flotr2 实现的 HTML5 图表
  5. 算法:指定位置翻转链表 rotate-list
  6. Charles Https 请求 SSL乱码问题 charles unreadable
  7. java IEnumerator_获取实现接口的所有类型
  8. 前端获取后台布尔类型_教育平台项目前端:视频讲解
  9. 树中两个节点的最低公共祖先
  10. Java反射机制--反射概述