很少用到的东西,但很实用,记录于此:
前台:
<asp:TreeView ID="TreeView1" runat="server" ExpandDepth="0" ShowLines="True" Width="370px" AutoGenerateDataBindings="False">
<LeafNodeStyle Font-Size="12px" />
<HoverNodeStyle BackColor="Lavender" />
</asp:TreeView>
后台:
using System;
using System.Data;
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;
public partial class system_companytree : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BoundToTreeView(TreeView1.Nodes, "");
}
}
/// <summary>
/// 递归初始化TreeView
/// </summary>
/// <param name="parentID">父ID</param>
protected void BoundToTreeView(TreeNodeCollection TRNode, string parentID)
{
string SQL = "SELECT * FROM t_OA_SYS_Department WHERE Isdel=0 and parentID!=-2";
if (!parentID.Equals(""))
{
SQL += " AND parentID=" + parentID;
}
else
{
SQL += " AND parentID=0";
}
DataTable DT = LiTianPing.SQLServerDAL.DbHelperSQL.Query(SQL).Tables[0];
int i = DT.Rows.Count;
if (DT != null && i > 0)
{
for (int j = 0; j < i; j++)
{
TreeNode ItemNode = new TreeNode();
ItemNode.Text = DT.Rows[j]["DepName"].ToString();
ItemNode.Value = DT.Rows[j]["ID"].ToString();
string Where = DT.Rows[j]["ParentID"].ToString();
if (Where.Equals("0"))
{
ItemNode.NavigateUrl = "system_detail_gs.aspx?ID_Company=" + ItemNode.Value;
}
else
{
ItemNode.NavigateUrl = "system_detail_agent.aspx?ID_Agen=" + ItemNode.Value;
}
//ItemNode.SelectAction = TreeNodeSelectAction.Expand;
string P;
P = DT.Rows[j]["ID"].ToString();
BoundToTreeView(ItemNode.ChildNodes, P);
TRNode.Add(ItemNode);
}
}
}
}