各们高人!谁发人一份treeview 应用的页面给我啊。 效果像CSDN社区!谢谢啊!

解决方案 »

  1.   

    public class OrganiseTree : System.Web.UI.Page
    {
    protected Microsoft.Web.UI.WebControls.TreeView OrganiseTreeView;

    private SqlHelper helper=null;
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    this.BaseBind();
    } private void BaseBind()
    {
    try
    {
    if(helper==null)
    {
    helper=new SqlHelper(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
    helper.Init();
    }
    SqlOrganiseProvider organise=new SqlOrganiseProvider(helper);
    OrganiseInfoCollection collection=organise.LoadDataFromDataBase();
    collection=organise.Hiberarchy(collection);
    collection=organise.getHiberarchyRootInfos(collection);
    TreeRootBind(collection);
    }
    catch(Exception ex)
    {
    ex.ToString();
    }
    } private TreeNode getRsBind()
    {
    TreeNode node=new TreeNode();
    node.Text="公司机构";
    node.Target=OrganiseInfoFactory.OrganiseTreeTarget;
    node.ImageUrl=OrganiseInfoFactory.OrganImage;
    node.NavigateUrl=string.Empty;
    return node;
    } private void TreeRootBind(OrganiseInfoCollection collection)
    {
    TreeNode rs=getRsBind();
    OrganiseTreeView.Nodes.Add(rs);
    TreeNodeCollection trees=rs.Nodes;
    OrganiseInfoFactory.getInstance().setAllUrl("EmpManagerByOrganise.aspx");
    foreach(OrganiseInfo info in collection)
    {
    TreeNode node=getTreeNode(info);
    if(node!=null)
    {
    TreeChildBind(node.Nodes,info);
    trees.Add(node);
    }
    }
    } private void TreeChildBind(TreeNodeCollection nodes,OrganiseInfo info)
    {
    if(info==null||(!info.IsChild))
    return;
    if(nodes==null)
    nodes=new TreeNodeCollection();
    foreach(OrganiseInfo organise in info.Childs)
    {
    TreeNode node=getTreeNode(organise);
    if(node!=null)
    {
    if(info.IsChild)
    TreeChildBind(node.Nodes,organise);
    nodes.Add(node);
    }
    }
    } private TreeNode getTreeNode(OrganiseInfo info)
    {
    TreeNode node=new TreeNode();
    node.ImageUrl=Server.MapPath(OrganiseInfoFactory.getInstance().getImagePath(info.OrganiseType));
    node.NavigateUrl=OrganiseInfoFactory.getInstance().getUrl(info.OrganiseType,"id",info.OrganiseID.ToString());
    node.Target=OrganiseInfoFactory.OrganiseTreeTarget;
    node.Text=info.OrganiseName;
    node.ID=info.OrganiseID.ToString();
    return node;
    }