代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
制作动态的TreeView
作者:
东昌
/ 发布于
2015/11/13
/
1300
首先向服务器发送请求: DataTable dt = DeserializeDataTable(GetMenuData(DefineConst.guser));//向服务器发送请求获得datatable对象 /// <summary> /// 反序列化DataTable /// </summary> /// <param name="pXml">序列化的DataTable</param> /// <returns>DataTable</returns> public static DataTable DeserializeDataTable(string pXml) { DataTable dt = new DataTable(); try { StringReader strReader = new StringReader(pXml); XmlReader xmlReader = XmlReader.Create(strReader); XmlSerializer serializer = new XmlSerializer(typeof(DataTable)); dt = serializer.Deserialize(xmlReader) as DataTable; return dt; } catch (Exception e) { return dt; } } 服务器处理内容: public string GetMenuData(string userid) { string groupid = DefineConst.gusergroupid; string sql = @"select rightid,rightname,form_id,parentid from mix_right_info"; sql = string.Format(sql, groupid, userid); DataSet ds =getSet(sql); DataTable dt = new DataTable(); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { dt = ds.Tables[0]; } dt.TableName = "TreeView"; return SerializeDataTableXml(dt); } /// <summary> /// 序列化DataTable /// </summary> /// <param name="pDt">包含数据的DataTable</param> /// <returns>序列化的DataTable</returns> public static string SerializeDataTableXml(DataTable dt) { // 序列化DataTable StringBuilder sb = new StringBuilder(); XmlWriter writer = XmlWriter.Create(sb); XmlSerializer serializer = new XmlSerializer(typeof(DataTable)); serializer.Serialize(writer, dt); writer.Close(); return sb.ToString(); } 客户端对DataTable操作生成树状结构: CreateMainMenu(dt, tvmenu) /// <summary> /// 生成树形菜单 /// </summary> /// <param name="dt">datetable</param> /// <param name="tv">treeview</param> public static bool CreateMainMenu(DataTable dt, TreeView tv) { string parentid = ""; foreach (DataRow dr in dt.Rows) { if (dr[3].ToString() == "1") { TreeNode tn = new TreeNode(); tn.Name = dr[0].ToString(); tn.Text = dr[1].ToString(); tn.Tag = dr[2].ToString(); parentid = dr[3].ToString(); tv.Nodes.Add(tn); tn.ImageIndex = 0; AddSubMenu(tn, dt, dr); } } return true; } /// <summary> /// 生成子菜单 /// </summary> /// <param name="tn"></param> /// <param name="dt"></param> /// <param name="dr"></param> private static void AddSubMenu(TreeNode tn, DataTable dt, DataRow dr) { string parentid = ""; foreach (DataRow ddr in dt.Rows) { if (ddr[3].ToString() == dr[0].ToString()) { //ddr为dr的子节点 TreeNode ttn = new TreeNode(); ttn.Name = ddr[0].ToString();//ttn.Name = ddr["窗体名称"].ToString(); ttn.Text = ddr[1].ToString();//ttn.Text = ddr["权限名称"].ToString(); parentid = ddr[3].ToString();//parentid = ddr["父级权限"].ToString(); ttn.Tag = ddr[2].ToString(); ttn.ImageIndex = 0; ttn.SelectedImageIndex = 1; tn.Nodes.Add(ttn); AddSubMenu(ttn, dt, ddr); } } }
试试其它关键字
TreeView
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
东昌
贡献的其它代码
(
28
)
.
pandas读取指定列
.
根据经纬度计算距离排序
.
获取注入对象的方法
.
添加一个字段
.
sqoop command –help
.
去除C语言注释
.
从Request.Url获取根网址的最简单方法
.
删除数据库关联记录(外键)
.
递归生成树
.
按位异或实现加密解密
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3