刚做过资源库小程序,用到了UltraWebTree ,利用数据库中的数据填充了树,以下是心得。
填充思想:先从表中找到根节点数据,生成节点插入到UltraWebTree中,然后利用递归寻找当前节点的子节点,生成节点,插入。
注意,需要using Infragistics.WebUI.Shared 空间
资源库表结构(两个表category与files):
category(存放资源文件目录列表)
| cid | cname | cfatherid |
files(存放fcid对应目录下的文件名称)
| fid | fname | fcid |
代码:
Page_Load中
if(!Page.IsPostBack)
{
DataTabledata=Query.ProcessSql("SELECTcid,cfatherid,cnameFROMcategory",GlobalVar.DBName);
this.InitTree(this.UltraWebTree1.Nodes,"0",data);
}
GlobalVar.DBName ->数据库名。
Query.ProcessSql ->我用了听棠的SPL持久层来做的。
对应的InitTree如下:
privatevoidInitTree(Infragistics.WebUI.UltraWebNavigator.NodesNds,stringcfatherid,DataTabledata)

{
Infragistics.WebUI.UltraWebNavigator.NodetmpNd;
DataRow[]rows=data.Select("cfatherid='"+cfatherid+"'");
foreach(DataRowrowinrows)

{
tmpNd=newInfragistics.WebUI.UltraWebNavigator.Node();
tmpNd.DataKey=int.Parse(row["cid"].ToString());
tmpNd.Text=row["cname"].ToString();
Nds.Add(tmpNd);
InitTree(tmpNd.Nodes,tmpNd.DataKey.ToString(),data);
}
}
其中Infragistics.WebUI.UltraWebNavigator.Nodes参考Infragistics手册,其实是和MS提供的TREE树控件TreeNodeCollection类相似的。
本文分享了使用UltraWebTree填充资源库小程序树状结构的经验。通过递归查询数据库中的目录与文件信息,并将这些信息转化为节点加入到UltraWebTree中。

被折叠的 条评论
为什么被折叠?



