返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

TreeView,ListBox 递归 数据绑定 例子详解

时间:2010-08-08 02:05来源:知行网www.zhixing123.cn 编辑:麦田守望者

很早之前写的东西,今天整理出来.非常简单

1).TreeView

public class MyTreeView
{
//自己定义的逻辑访问层
ClassBLL classBll = new ClassBLL();

public void DataBind(TreeView tv)
{
//清空树
tv.Nodes.Clear();

//加载根结点
K_Class cls = classBll.GetRootClass();
TreeNode tn = new TreeNode(cls.ClassName, cls.ID);
tv.Nodes.Add(tn);

//遍历以根结点为父结点的所有结点
AddChildNode(tn, cls.ID);
}

private void AddChildNode(TreeNode tn, string cid)
{
//选取所有子结点
List<K_Class> kc = classBll.GetChildClassPid(cid);

if (kc != null && kc.Count > 0)
{

foreach (var item in kc)
{
TreeNode childNode = new TreeNode(item.ClassName, item.ID);
tn.ChildNodes.Add(childNode);
//以子结点作为父结点进行遍历
AddChildNode(childNode, item.ID);
}
}
}
}

 

2).ListBox

public class MyListBox
{
//自己定义的逻辑访问层
ClassBLL classBll = new ClassBLL();
int iblk = 1;
public void DataBind(ListBox lb)
{
//清空所有项
lb.Items.Clear();

//加载根结点
K_Class cls = classBll.GetRootClass();
ListItem li = new ListItem(cls.ClassName, cls.ID);
lb.Items.Add(li);

//遍历以根结点为父结点的所有结点
AddChildNode(lb, cls.ID);
}

private void AddChildNode(ListBox lb, string cid)
{
int subiblk = iblk + 1;
//选取所有子结点
List<K_Class> list = classBll.GetChildClassPid(cid);
if (list != null && list.Count >= 0)
{
subiblk++;
foreach (var item in list)
{
lb.Items.Add(new ListItem(string.Format("{0}├{1}", Blank(subiblk), item.ClassName), item.ID));
iblk = subiblk;
//以子结点作为父结点进行遍历
AddChildNode(lb, item.ID);
}
}
}

//生成空格格式
private string Blank(int n)
{
string blk = string.Empty;
for (int i = 0; i < n; i++)
{
blk += " ";
}
return blk;
}
}

 

------分隔线----------------------------
标签(Tag):ASP.NET asp.Net实例教程 ASP.NET教程 ASP.NET代码
------分隔线----------------------------
推荐内容
猜你感兴趣