利用数据库来填充UltraWebTree

本文分享了使用UltraWebTree填充资源库小程序树状结构的经验。通过递归查询数据库中的目录与文件信息,并将这些信息转化为节点加入到UltraWebTree中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚做过资源库小程序,用到了UltraWebTree ,利用数据库中的数据填充了树,以下是心得。
填充思想:先从表中找到根节点数据,生成节点插入到UltraWebTree中,然后利用递归寻找当前节点的子节点,生成节点,插入。
注意,需要using Infragistics.WebUI.Shared 空间
资源库表结构(两个表category与files):
category(存放资源文件目录列表

cidcnamecfatherid
cid是标示,cname目录名称,cfatherid父目录名称
files(存放fcid对应目录下的文件名称
fidfnamefcid

代码:
Page_Load中
None.gifif(!Page.IsPostBack)
ExpandedBlockStart.gif
{
InBlock.gifDataTabledata
=Query.ProcessSql("SELECTcid,cfatherid,cnameFROMcategory",GlobalVar.DBName);
InBlock.gif
this.InitTree(this.UltraWebTree1.Nodes,"0",data);
ExpandedBlockEnd.gif}

None.gif

GlobalVar.DBName ->数据库名。
Query.ProcessSql ->我用了听棠的SPL持久层来做的。

对应的InitTree如下:

None.gifprivatevoidInitTree(Infragistics.WebUI.UltraWebNavigator.NodesNds,stringcfatherid,DataTabledata)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gifInfragistics.WebUI.UltraWebNavigator.NodetmpNd;
InBlock.gifDataRow[]rows
=data.Select("cfatherid='"+cfatherid+"'");
InBlock.gif
foreach(DataRowrowinrows)
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.giftmpNd
=newInfragistics.WebUI.UltraWebNavigator.Node();
InBlock.giftmpNd.DataKey
=int.Parse(row["cid"].ToString());
InBlock.giftmpNd.Text
=row["cname"].ToString();
InBlock.gifNds.Add(tmpNd);
InBlock.gifInitTree(tmpNd.Nodes,tmpNd.DataKey.ToString(),data);
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

其中Infragistics.WebUI.UltraWebNavigator.Nodes参考Infragistics手册,其实是和MS提供的TREE树控件TreeNodeCollection类相似的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值