treeview绑定(一)

来源:互联网 发布:淘宝童装店铺名字大全 编辑:程序博客网 时间:2024/06/05 19:33

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

public partial class Tree2 : System.Web.UI.Page
{
    SqlConnection sqlCon = new SqlConnection(@"server=.;database=Forum;Trusted_Connection=True");
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            NodeTree(10);   //设定gradecount的最大层数
        }
    }

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

    protected TreeNode NodeTree(int gradeCount)      //gradecount为最大的层数
    {
        DataSet ds = dsDataBind("select * from tb_Department2 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]);     //层次“低”的子树加入到层次“高”的子树  
                UserNode(tn[grade], id);
                //UserNode(tn, id);
            }
            else
            {
                tn[grade] = new TreeNode(name, id);
                tn[grade-1].ChildNodes.Add(tn[grade]);
                UserNode(tn[grade], id);
            }
        }
        return tn[0];
    }

    public void UserNode(TreeNode node, string fuserdept)   //取出tb_user表中的user
    {
        DataSet ds = dsDataBind("select * from tb_User where fuserdept =" + fuserdept);
        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]["fusername"].ToString();
                tn.Value = ds.Tables[0].Rows[i]["fuserid"].ToString();
                node.ChildNodes.Add(tn);
            }
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        this.tb_Select.Text = null;     //清空textbox,方便重新选择人员
        if (TreeView1.CheckedNodes.Count > 0)
        {
            foreach (TreeNode node in TreeView1.CheckedNodes)
            {
                if (node.ChildNodes.Count == 0)
                {
                    string[] text = tb_Select.Text.Split(',');
                    if (!tb_Select.Text.Contains(node.Text+",")) //在treeview读出的字段后加“,”再与textbox中的字段比较。防止包含情况下取不出值
                    {
                        tb_Select.Text += node.Text + ",";
                    }
                }
            }
        }
        else
        {
            Response.Write("<script language='javascript'>alert('没有选择人员!');</script>");
            this.tb_Select.Text = null;
        }
    }

}