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;
}
}
}