三层无限动态树

 

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.Xml;
using System.Data.SqlClient;

public partial class security_UsersManage : System.Web.UI.Page
{
  
    private void Page_Load(object sender, System.EventArgs e)
    {
        //   在此处放置用户代码以初始化页面  
        if (!IsPostBack)
        {
           //公司根数据为“10000”
           InitTreeCompany(TreeView1.Nodes, "10000",0);
         
            this.TreeView1.DataBind();
      
            TreeView1.CollapseAll();//关闭所有节点
            TreeView1.ShowLines = true;

        }
    }

    private void geticon()
    {
    //this.TreeView1

    }
    private DataSet CreateDataSet(String dbtablename)
    {

        string cmdSelect = "select   *   from   "+dbtablename;
        SqlDataAdapter myCmd = new SqlDataAdapter(cmdSelect, ConfigurationManager.ConnectionStrings["SQL2005ExpressConnectionString"].ToString());
        DataSet ds = new DataSet();
        //ds.Tables[dbtablename].Clear();
        myCmd.Fill(ds, dbtablename);
        return ds;
    }
    private void InitTreeCompany(TreeNodeCollection Nds, string parentId,int timesc)
    {
        DataView dvCompany = new DataView();
        TreeNode tmpNd;
        string strCID;
        int level = 0;
     
       
        dvCompany.Table = CreateDataSet("Membership_Companies").Tables["Membership_Companies"];
        dvCompany.RowFilter = "ParentCompany=   '" + parentId + "'";
        int levelcount = dvCompany.Count;
        foreach (DataRowView drvCompany in dvCompany)
        {
            strCID = drvCompany["CompanyID"].ToString();
            tmpNd = new TreeNode();
            tmpNd.Value = drvCompany["CompanyID"].ToString();
            tmpNd.Text = drvCompany["CompanyName"].ToString();
            tmpNd.ToolTip = "Company";
            Nds.Add(tmpNd);
            level = Nds.Count;
           
                    InitTreeDepartment(tmpNd.ChildNodes, "20000", 0, strCID);
             
            InitTreeCompany(tmpNd.ChildNodes, strCID,timesc+1);
        }
      
    }

    private void InitTreeDepartment(TreeNodeCollection Nds, string parentId,int timesd,string companyid )
    {
        DataView dvDepartment = new DataView();
        TreeNode tmpNd;
        string strDID;
        int number=0;
           

            dvDepartment.Table = CreateDataSet("View_Membership_CompaniesDepartments").Tables["View_Membership_CompaniesDepartments"];
            dvDepartment.RowFilter = "ParentDepartment=   '" + parentId + "'and CompanyID='"+companyid+"'";

            foreach (DataRowView drvDepartment in dvDepartment)
            {
              
                strDID = drvDepartment["DepartmentID"].ToString();
                tmpNd = new TreeNode();
                tmpNd.Value = drvDepartment["DepartmentID"].ToString();
                tmpNd.Text = drvDepartment["DepartmentName"].ToString();
                tmpNd.ToolTip = "Department";
                Nds.Add(tmpNd);
                number = Nds.Count;

                InitTreeUser(tmpNd.ChildNodes, 0,strDID);
             
                InitTreeDepartment(tmpNd.ChildNodes, strDID, timesd + 1, companyid);
            }
    }

    private void InitTreeUser(TreeNodeCollection Nds, int timesu, string departmentid)
    {
        DataView dvUser = new DataView();
        TreeNode tmpNd;
        string strUID;

 

        dvUser.Table = CreateDataSet("View_Membership_DepartmentsUsers").Tables["View_Membership_DepartmentsUsers"];
        dvUser.RowFilter = " DepartmentID=" + departmentid ;

        foreach (DataRowView drvUser in dvUser)
        {
            strUID = drvUser["UserID"].ToString();
            tmpNd = new TreeNode();
            tmpNd.Value = drvUser["UserID"].ToString();
            tmpNd.Text = drvUser["UserName"].ToString();
            tmpNd.ToolTip = "User";
            Nds.Add(tmpNd);
        }
    }
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值