treeview绑定(二)

来源:互联网 发布:misumi软件介绍 编辑:程序博客网 时间:2024/06/05 08:36

[转载]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);
            }
        }
    }

}

原创粉丝点击