62,073
社区成员
发帖
与我相关
我的任务
分享
create table cate
(
folderid uniqueidentifier not null,
foldername nvarchar(80),
paretid uniqueidentifier
)
declare @a1 uniqueidentifier, @a2 uniqueidentifier, @a3 uniqueidentifier
set @a1 = NEWID()
set @a2 = NEWID()
set @a3 = NEWID()
insert into cate select @a1,' 部门1',null union all
select @a2,' 部门2',null union all
select @a3,' 部门3',null union all
select NEWID(),' 部门1-1',@a1 union all
select NEWID(),' 部门1-2',@a1 union all
select NEWID(),' 部门2-1',@a2 union all
select NEWID(),' 部门2-2',@a2 union all
select NEWID(),' 部门3-1',@a3 union all
select NEWID(),' 部门3-2',@a3
private DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
dt = GetTree();
ForEachTree(null);
}
}
protected void ForEachTree(TreeNode prevNode)
{
DataView dv = dt.DefaultView;
dv.RowFilter = prevNode == null ? "paretid is null" : "paretid = '" + prevNode.Value + "'";
foreach (DataRowView item in dv)
{
TreeNode tn = new TreeNode();
tn.Text = item["foldername"].ToString();
tn.Value = item["folderid"].ToString();
if (prevNode == null)
{
TreeView1.Nodes.Add(tn);
}
else
{
prevNode.ChildNodes.Add(tn);
}
ForEachTree(tn);
}
}
protected DataTable GetTree()
{
DataTable dt = new DataTable();
using (SqlConnection conn = new SqlConnection("server=.;user id=sa;pwd=111;database=master;"))
{
conn.Open();
SqlCommand cmd = new SqlCommand("select * from cate", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
}
return dt;
}
private void InitTree(TreeNodeCollection Nds,int parentid)
{
DataView dv = new DataView();
TreeNode tmpNd = null;
dv.Table = ds.Tables[0];
dv.RowFilter = String.Format("parentid={0}", parentid);
foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.Text = (string)drv["sortname"];//节点名称
tmpNd.NavigateUrl = String.Format("?id={0}", drv["id"]);//节点URL
//tmpNd.ImageUrl = ""; //节点图片
if (parentid == 0)
tmpNd.Expanded = true;
else
tmpNd.Expanded = false;
Nds.Add(tmpNd);
InitTree(Nds[Nds.Count - 1].ChildNodes, (int)drv["id"]);
}
}