Ultratree通过数据库的内容动态添加树

来源:互联网 发布:淘宝开团怎么抢 编辑:程序博客网 时间:2024/05/21 14:42

 数据库的字段

taskkindid , taskid  ,fatherid, taskname...

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Text;


public partial class TaskAdministration_TimeSelect : System.Web.UI.Page
{
    DataTable dt 
= new DataTable();
    Database db 
= DatabaseFactory.CreateDatabase();
    
protected void Page_Load(object sender, EventArgs e)
    
{
        bindtree(UltTree);
    }

    
protected void bindtree(Infragistics.WebUI.UltraWebNavigator.UltraWebTree treeview)
    
{

        treeview.Nodes.Clear();
        
////創建四个根節點,葉面會產生四個根,只要一個根,則定義一個節點
        Infragistics.WebUI.UltraWebNavigator.Node rootnode1 = new Infragistics.WebUI.UltraWebNavigator.Node();
        Infragistics.WebUI.UltraWebNavigator.Node rootnode2 
= new Infragistics.WebUI.UltraWebNavigator.Node();
        Infragistics.WebUI.UltraWebNavigator.Node rootnode3 
= new Infragistics.WebUI.UltraWebNavigator.Node();
        Infragistics.WebUI.UltraWebNavigator.Node rootnode4 
= new Infragistics.WebUI.UltraWebNavigator.Node();

        
//添加固定根節點,若沒有固定的標題,則可以不添加
        rootnode1.Text = "專案事項";
        rootnode1.Tag 
= "1";
        rootnode2.Text 
= "會議事項";
        rootnode2.Tag 
= "2";
        rootnode3.Text 
= "例行事項";
        rootnode3.Tag 
= "3";
        rootnode4.Text 
= "一般事項";
        rootnode4.Tag 
= "4";
        treeview.Nodes.Add(rootnode1);
        treeview.Nodes.Add(rootnode2);
        treeview.Nodes.Add(rootnode3);
        treeview.Nodes.Add(rootnode4);
       
//獲取形成樹的數據
        dt = getTrees("1");
        
//調用遞歸添加樹結點
        CreateChildNode(rootnode1, "0",dt);
        dt 
= getTrees("2");
        CreateChildNode(rootnode2, 
"0", dt);
        dt 
= getTrees("3");
        CreateChildNode(rootnode3, 
"0", dt);
        dt 
= getTrees("4");
        CreateChildNode(rootnode4, 
"0", dt);
    }

    
/// <summary>
    
/// 遞歸方法添加節點
    
/// </summary>
    
/// <param name="parentnode"></param>
    
/// <param name="taskid"></param>
    
/// <param name="dt"></param>

    public void CreateChildNode(Infragistics.WebUI.UltraWebNavigator.Node parentnode,string taskid,DataTable dt)
    
{
        DataRow[] rows 
= dt.Select("Fatherid='"+taskid+"'");
        
foreach (DataRow dr in rows)
        
{
            Infragistics.WebUI.UltraWebNavigator.Node nd 
= new Infragistics.WebUI.UltraWebNavigator.Node();
            nd.Tag 
= dr["taskid"].ToString();
            nd.Text 
= dr["taskname"].ToString();
            parentnode.Nodes.Add(nd);
            
//遞歸調用獲取所有數據
            CreateChildNode(nd,dr["taskid"].ToString(),dt);
        }

    }

    
/// <summary>
    
/// 獲取數據
    
/// </summary>
    
/// <param name="taskkindid"></param>
    
/// <returns></returns>

    public DataTable getTrees(string taskkindid)
    
{
        StringBuilder cmdText 
= new StringBuilder();
        cmdText.Append(
"Select * From Task Where TaskKindID='"+taskkindid+"'");
        DbCommand cmd 
= db.GetSqlStringCommand(cmdText.ToString());
        dt 
= db.ExecuteDataSet(cmd).Tables[0];
        
int i = dt.Rows.Count;
        
return dt;
    }

}

原创粉丝点击