前台
<asp:TreeView ID="TreeView1" runat="server" MaxDataBindDepth="2" PopulateNodesFromClient="true"
OnTreeNodePopulate="TreeView1_TreeNodePopulate" OnTreeNodeExpanded="TreeView1_TreeNodeExpanded">
</asp:TreeView>
后台:
using System.Data.SqlClient;
public partial class TreeView : System.Web.UI.Page
{
DataSet ds;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlConnection CN = new SqlConnection();
string folderName = System.Configuration.ConfigurationManager.AppSettings["linkDataBase"];
CN.ConnectionString = folderName;
CN.Open();
string strSql = "SELECT iDeptID, SDeptName FROM tbDept order by iDeptID";
SqlDataAdapter adp = new SqlDataAdapter(strSql, CN);
ds = new DataSet();
adp.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
{
TreeNode node = new TreeNode();
node.PopulateOnDemand = true; //允许动态填充节点
TreeView1.Nodes.Add(node);
node.Value = row[0].ToString();
node.Text = row[1].ToString();
node.Expanded = false;//是否展开节点
node.SelectAction = TreeNodeSelectAction.Expand;//点击父节点 展开子节点
}
CN.Close();
}
}
protected void TreeView1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
{
if (e.Node.ChildNodes.Count == 0)
TreeView_DataSet(e);// 填充子节点
}
void TreeView_DataSet(TreeNodeEventArgs e)
{
e.Node.SelectAction = TreeNodeSelectAction.Expand;
SqlConnection CN = new SqlConnection();
string folderName = System.Configuration.ConfigurationManager.AppSettings["linkDataBase"];
CN.ConnectionString = folderName;
CN.Open();
//string strSql = "SELECT iDeptID, SDeptName FROM tbUser order by iDeptID";
string strSql = "SELECT iUserID, sUserName, iDeptID, sTitle FROM tbUser Where datediff(mi,dtime,getdate())<5 and iDeptID= " + e.Node.Value;
SqlDataAdapter adp = new SqlDataAdapter(strSql, CN);
ds = new DataSet();
adp.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
{
TreeNode newNode = new TreeNode();
// newNode.PopulateOnDemand = true;
newNode.Text = row["sUserName"].ToString();
newNode.ToolTip = row["sUserName"].ToString();
newNode.Value = row["iUserID"].ToString();
e.Node.ChildNodes.Add(newNode);//添加目录节点
}
CN.Close();
}
}