动态加载UltraWebTree

来源:互联网 发布:java实验总结 编辑:程序博客网 时间:2024/05/22 09:44

数据库表结构为:

表名:treeTable
字段:L_ID:主键ID
L_Name:树中显示的菜单名
P_L_ID:属于某个菜单
L_Page:导向路径
L_PageName:文件名

示例数据:

L_ID

L_Name

P_L_ID

L_Page

L_PageName

1

根1

0

.....

 

2

根2

0

......

 

3

子11

1

...

 

4

子12

1

 

 

5

子13

1

 

 

6

子21

2

 

 

 

//初始化树形菜单
private void DataBindTree()
  

   DataConn dc
=new DataConn (SpecialClass.strConn);  //在这里做数据连接,改为你自己的连接就可以了
   DataTable dt=new DataTable ();
//查询表中数据,构造成DataTable
   dt=dc.GetDataTable("select L_ID,L_Name,P_L_ID,(L_Page+L_PageName) as URLPath from  treeTable");
   InitTree(
this.UltraWebTree1.Nodes,"0",dt);
   
//展开树
   tvwItems.ExpandAll();
  }


  
private void InitTree(Infragistics.WebUI.UltraWebNavigator.Nodes Nds,string pID,DataTable data)
  
{
   Infragistics.WebUI.UltraWebNavigator.Node tmpNd;
   DataRow [] rows 
= data.Select("P_L_ID='" + pID + "'");
   
foreach(DataRow row in rows)
   
{
    tmpNd 
= new Infragistics.WebUI.UltraWebNavigator.Node();
    tmpNd.DataKey 
= row["L_ID"].ToString(); //ID
    tmpNd.Text = row["L_Name"].ToString(); //结点名称
    tmpNd.TargetUrl=row["URLPath"].ToString(); //路径+页面
    tmpNd.TargetFrame="main";  //导向的目标框架
    Nds.Add(tmpNd);
    InitTree(tmpNd.Nodes, tmpNd.DataKey.ToString(),data);
   }

  }
 
原创粉丝点击