- 热门文章:
- · 无外部控件制作多媒体播放器(一)
- · Web Browser Express 概述
- · datagrid编辑删除分页
- · 展现C# 清单5.10 生成exe文件执行的问题
- · 联通增值业务“定位之星”L1协议服务端的模拟器
- · 一个自认为写得还可以的存储过程,就是没有注释,看起来有点乱。与ERP的BOM相关的
- · [EnterpriseServices]利用assembly定义我们的组件在COM+中的注册方式
- · 给windows服务添加描述
- · 用户认证管理设计方案
- · Solidworks二次开发—07—控制草图对象
- · 数据库事务处理的另外一种方法
- · 《Essential .Net》读书笔记 - Chapter 3
上一篇:无外部控件制作多媒体播放器(二) >>
用TreeView显示数据通用方法
public void TreeViewData(DataSet ds,string textColumnName,string parentColumnName,string tagColumnName)
{
myTreeData root = new myTreeData();
myTreeData child = null;
for (i = 0 ; i < ds.Tables[0].Rows.Count; ++i)
{
child = new myTreeData(ds.Tables[0].Rows[i][textColumnName].ToString(),ds.Tables[0].Rows[i][tagColumnName],ds.Tables[0].Rows[i][parentColumnName]);
root.Add(child);
}
root.ShowTree(tv);
}
/// <summary>
/// 树型节点数据类
/// </summary>
public class myTreeData
{
public myTreeData()
{
}
public myTreeData(string name)
{
Name = name;
}
public myTreeData(string name,object tag,object parent)
{
Name = name;
Tag = tag;
Parent = parent;
}
/// <summary>
/// 子数据集合
/// </summary>
private myTreeDataCollection Child = new myTreeDataCollection();
/// <summary>
/// 数据对象
/// </summary>
public object Tag = null;
/// <summary>
/// 名称
/// </summary>
public string Name = "";
/// <summary>
/// 父亲
/// </summary>
public object Parent = null;
/// <summary>
/// 添加子数据
/// </summary>
/// <param name="child">子数据</param>
public void Add(myTreeData child)
{
int i;
for (i = this.Child.Count - 1; i >= 0;--i)
{
if (Convert.ToInt32(this.Child[i].Parent) == Convert.ToInt32(child.Tag) )
{
child.Child.Add(this.Child[i]);
this.Child.RemoveAt(i);
}
}
myTreeData parent = FindParent(this,child);
if (parent == null)
{
this.Child.Add(child);
}
else
{
parent.Child.Add(child);
}
}
/// <summary>
/// 查找父亲数据
/// </summary>
/// <param name="child">子数据</param>
/// <returns>父亲数据或者null</returns>
public myTreeData FindParent(myTreeData parent,myTreeData child)
{
int i;
for (i = 0; i < parent.Child.Count; ++i)
{
if (Convert.ToInt32(parent.Child[i].Tag) == Convert.ToInt32(child.Parent))
{
return parent.Child[i];
}
myTreeData temp = FindParent(parent.Child[i],child);
if (temp != null)
{
return temp;
}
}
return null;
}
/// <summary>
/// 将子数据显示到TreeView
/// </summary>
/// <param name="tv">TreeView</param>
public void ShowTree(TreeView tv)
{
int i;
TreeNode tn = null;
for (i = 0 ; i < this.Child.Count; ++i)
{
tn = tv.Nodes.Add(this.Child[i].Name);
tn.Tag = this.Child[i].Tag;
ShowTree(tn,this.Child[i]);
}
}
/// <summary>
/// 递归显示数据
/// </summary>
/// <param name="tn">节点</param>
/// <param name="child">数据</param>
private void ShowTree(TreeNode tnParent,myTreeData child)
{
int i;
TreeNode tn = null;
for (i = 0 ; i < child.Child.Count; ++i)
{
tn = tnParent.Nodes.Add(child.Child[i].Name);
tn.Tag = child.Child[i].Tag;
ShowTree(tn,child.Child[i]);
}
}
/// <summary>
/// 树型节点集合类
/// </summary>
internal class myTreeDataCollection : AddCollectionBase
{
public myTreeDataCollection()
{
}
public myTreeData this[int index]
{
get
{
return (myTreeData)List[index];
}
}
}
}
下一篇:无外部控件制作多媒体播放器(一) >>
相关文章:
- · DX图形显示基本流程(基于MESH静态模型绘制----托管代码)
- · 如何让 DevExpress 的 DateEdit 控件正确显示日期的周名
- · ASP.net下的前台日历控件源代码(不刷新页面)
- · 通过可视化继承和页面模板控制站点设计
- · 在ASP.Net中两种利用CSS实现多界面的方法
- · 数据表单向导的快速实现
- · Posting form data from ASP.NET page to another URL
- · Asp.net中Treeview终极解决方案
- · 解决ASP.NET创建的线程的用户改变引发的拒绝访问错误
- · 有关sql注入
- · 一个动态编译的例子
- · 一个拷贝整个文件夹(包括子文件夹)的方法(原创)
- · 在ASP.NET中实现弹出日历
- · 在DataGrids和DropDownLists中使用ADO
- · asp.net 页面中生成 RSS 2.0 提要
- · Session登陆后丢失的解决办法
- · 基于HTTP协议用WinSock实现任意文件下载
- · 奔腾Flash Player source code
- · 《Essential .Net》读书笔记 - Chapter 2
- · 《Essential .Net》读书笔记 - Chapter 1
- · 获取指定IP的终端的MAC地址
- · 网络传输(FTP)问题
- · Paint.NET: An Open Source GDI+ App Likes Photoshop
- · 看到有人用 WebClient来下载, 发篇用 WebRequest 实现有进度下载的吧.
- · 树形控件TreeView的序列化
- · 使用javascript+XML实现分页
- · 使用Control.Invoke处理多线程应用程序界面
- · WEB页面TreeView的应用-(得到所有选中的节点)
- · DotNetNuke(DNN)
- · 枚举器模式(Enumerator pattern)
- · 用ASP.NET 1.1 新特征防止Script攻击
- · 关于ASP.Net中的时间处理
- · javascript实现的数据表格:冻结列、调整列宽和客户端排序
- · [常见问题]cookie使用1.Page与HttpContext的Request、Response
- · 怎样在页面和页面的用户控件进行交互
- · webform页面间传值的特殊方法
- · 怎么直接建立一个DataTable并且为之添加数据
- · 我的第一个Asp.Net程序
