treeview绑定(二)

[转载]TreeView数据绑定(三)

[转载]TreeView数据绑定(三)

[转载]TreeView数据绑定(三)

[转载]TreeView数据绑定(三)

using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
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.Globalization;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
    SqlConnection sqlCon = new SqlConnection(@"server=.;database=Test;Trusted_Connection=True");
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            DeptTree(15);
        }
    }

    public DataSet dsDataBind(string sqlSelect)
    {
        SqlDataAdapter da = new SqlDataAdapter(sqlSelect, sqlCon);
        DataSet ds = new DataSet();
        da.Fill(ds);
        return ds;
    }

    protected TreeNode DeptTree(int gradeCount)      //gradecount为最大的层数
    {
        DataSet ds = dsDataBind("select * from tb_Department order by fdeptid asc");
        string id, name;
        int grade;
        TreeNode[] tn = new TreeNode[gradeCount];
        TreeNode tree = new TreeNode();
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            name = ds.Tables[0].Rows[i]["fdeptname"].ToString();
            id = ds.Tables[0].Rows[i]["fdeptid"].ToString();
            grade = Convert.ToInt32(ds.Tables[0].Rows[i]["fgrade"].ToString());
            if (grade == 0)
            {
                tn[grade] = new TreeNode(name, id);
                TreeView1.Nodes.Add(tn[0]);
                PostTree(tn[grade],gradeCount, id);
            }
            else
            {
                tn[grade] = new TreeNode(name, id);
                tn[grade - 1].ChildNodes.Add(tn[grade]);
                PostTree(tn[grade],gradeCount, id);
            }
        }
        return tn[0];
    }

    protected void PostTree(TreeNode node,int gradeCount,string fdeptid)      //gradecount为最大的层数
    {
        DataSet ds = dsDataBind("select * from tb_Post where fdeptid='"+fdeptid +"' order by fdeptid asc");

        string id, postName, userName;
        int grade,total;
        TreeNode[] tn = new TreeNode[gradeCount];
        TreeNode tree = new TreeNode();
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            postName = ds.Tables[0].Rows[i]["fpostname"].ToString();
            id = ds.Tables[0].Rows[i]["fpostid"].ToString();
            grade = Convert.ToInt32(ds.Tables[0].Rows[i]["fsamedeptGrade"].ToString());
            DataSet userds = dsDataBind("select * from tb_User where fpostid ='" + id + "'and fdeptid ='" + fdeptid + "'");
            if (userds.Tables[0].Rows.Count == 0)
            {
                userName = "空";
                string newName = postName + "[" + userName + "]";
                if (grade == 0)
                {
                    tn[grade] = new TreeNode(newName, id);
                    node.ChildNodes.Add(tn[grade]);             //为当前部门节点添加父级岗位节点
                }
                else
                {
                    tn[grade] = new TreeNode(newName, id);
                    tn[grade - 1].ChildNodes.Add(tn[grade]);    //为父级岗位节点添加子节点
                }
            }
            else
            {
                total = userds.Tables[0].Rows.Count;
                string newName = postName + "[共" + total + "人]";
                if (grade == 0)
                {
                    tn[grade] = new TreeNode(newName, id);
                    node.ChildNodes.Add(tn[grade]);             //为当前部门节点添加父级岗位节点
                    UserNode(tn[grade], id, fdeptid);
                }
                else
                {
                    tn[grade] = new TreeNode(newName, id);
                    tn[grade - 1].ChildNodes.Add(tn[grade]);    //为父级岗位节点添加子节点
                    UserNode(tn[grade], id, fdeptid);
                }
            }
        }
    }
    public void UserNode(TreeNode node, string fpostid,string fdeptid)   //取出tb_user表中的user
    {
        DataSet ds = dsDataBind("select * from tb_User where fpostid ='" + fpostid + "'and fdeptid ='" + fdeptid + "'");
        if (ds.Tables[0].Rows.Count != 0)
        {
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                TreeNode tn = new TreeNode();
                tn.Text = ds.Tables[0].Rows[i]["fname"].ToString();
                tn.Value = ds.Tables[0].Rows[i]["fuserid"].ToString();
                node.ChildNodes.Add(tn);
            }
        }
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值