关于Treeview控件的多级显示?
调用的生成TreeView的函数:
private void InitTree(TreeNodeCollection Nds,string parentId)
{
//要using Microsoft.Web.UI.WebControls;
//using System.Data.SqlClient;
DataView dv=new DataView();
Microsoft.Web.UI.WebControls.TreeNode tmpNd;
string intId;
dv.Table=ds.Tables["tree"];
dv.RowFilter="MKSUN='" + parentId + "'";
foreach(DataRowView drv in dv)
{
tmpNd=new Microsoft.Web.UI.WebControls.TreeNode();
tmpNd.ID=drv["MKFATHER"].ToString();
tmpNd.Text=drv["MKMC"].ToString();
tmpNd.ImageUrl="../images/aa.jpg";
tmpNd.NavigateUrl="../aa.jpg";
TreeView1.Nodes.Add(tmpNd);
intId=drv["MKSUN"].ToString();
InitTree(tmpNd.Nodes,tmpNd.ID);
}
}
表及数据:
MKFATHER(char[6]) MKMC(char[6]) MKSUN(char[6])
1 aaaa 0
2 bbbb 0
3 cccc 1
4 dddd 1
5 eeee 2
MKFATHER为唯一标示
MKMC为名称
MKSUN为父节点
我调用上面的函数来生成一个多级树,但是生成的始终只有一级,不知道为什么??
5 楼pcuser(晚风)回复于 2003-05-24 09:59:52 得分 2
以下生成树的递归程序供你参考,
private void initTree(DataSet ds,TreeNodeCollection nodes,string parentid)
{
DataView myView=new DataView();
TreeNode tmdND;
myView.Table=ds.Tables["tree"];
foreach(DataRowView drv in myView)
{
tmdND=new TreeNode();
tmdND.ID=drv[Request.QueryString["nodeid"]].ToString();
tmdND.Text=drv[Request.QueryString["nodename"]].ToString();
nodes.Add(tmdND);
initTree(ds,tmdND.Nodes,tmdND.ID);
}
}
6 楼majh1121(majh)回复于 2003-05-24 10:28:13 得分 0
pcuser(晚风)
我在生成第一级时tmdND.ID=drv[Request.QueryString["nodeid"]].ToString();报错,说是key值不能为空?为什么呢?Top
7 楼cloud_scorpion(cloud_scorpion)回复于 2003-05-26 10:05:36 得分 14
Nds.Add(tmpNd);