zoukankan      html  css  js  c++  java
  • 利用数据库来填充UltraWebTree

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

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

    代码:
    Page_Load中

    if (!Page.IsPostBack)
       
    {
        DataTable data
    = Query.ProcessSql("SELECT cid,cfatherid,cname FROM category",GlobalVar.DBName); 
        
    this.InitTree(this.UltraWebTree1.Nodes, "0",data); 
       }

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

    对应的InitTree如下:

    private void InitTree(Infragistics.WebUI.UltraWebNavigator.Nodes Nds,string cfatherid,DataTable data)
            
    {
                Infragistics.WebUI.UltraWebNavigator.Node tmpNd;
                DataRow [] rows 
    = data.Select("cfatherid='" + cfatherid + "'");
                
    foreach(DataRow row in rows)
                
    {
                    tmpNd 
    = new Infragistics.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类相似的。
  • 相关阅读:
    dex文件格式三
    神庙逃亡破解分析
    MySQL优化
    Redis AOF和RDB
    KD树
    关系型和非关系型数据库
    数据库实现分布式锁
    单点登录
    数据库树形结构查询
    层次遍历递归和非递归方法
  • 原文地址:https://www.cnblogs.com/zjy/p/402398.html
Copyright © 2011-2022 走看看