当前位置:编程学习 > C#/ASP.NET >>

菜鸟求递归(Tree),求大神踊跃回复

有一张数据表 结构如下


现在想在程序里面以树结构的形式展现


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Text;

public partial class _Default : System.Web.UI.Page
{
    public DataTable dt = null; //用来存储填充树的数据
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            dt= GetDataSource();
           
        }
        
    }
    /// <summary>
    /// 获取数据
    /// </summary>
    /// <returns>DataTable</returns>
    private DataTable GetDataSource()
    {
        string sqlConnectionString = "Data Source=.;Initial Catalog=testDB;uid=sa;pwd=123";
        string sqlText = "select id,name,parentID from  TreeNode";
        SqlConnection connection = null;
        SqlDataAdapter dataadapter = null;
        try
        {
            connection = new SqlConnection(sqlConnectionString);
            using (dataadapter=new SqlDataAdapter(sqlText,connection))
            {
                
            }
            DataTable dt = new DataTable();
            dataadapter.Fill(dt);
            return dt;

        }
        catch (Exception ex)
        {
            return null;
            throw ex;
        }
        finally {
            connection.Close();
        }
    
    
    }
   
    /// <summary>
    /// 用来加载层次结构
    /// </summary>
    /// <param name="parentNode"></param>
    private void LoadTree(int parentID)
    {
        //现在关于这个方法怎么实现,是否还需要一个参数,求思路
        
        StringBuilder sbuilder = new StringBuilder();
        foreach (DataRow item in dt.Rows)
        {
            
        }

    
    }
}


    --------------------编程问答-------------------- private void LoadTree(int parentID)
=>
private void LoadTree(TreeNode tn)
你的id应该以tag的形式放在tn中。 --------------------编程问答-------------------- 递归绑定TreeView,太常见的功能了,请参考:
http://blog.csdn.net/taomanman/article/details/4816297

http://blog.csdn.net/taomanman/article/details/6561233 --------------------编程问答-------------------- 给你一个id(这里是1)以及一个TreeNodeCollection,你是否能够查询到这个id下的所有子id(这里就是2、3、4)并且为这个TreeNodeCollection对象分别添加这几个节点呢?

能够写出这几行程序,那么针对你添加的节点,再次调用自身这个方法就行了。

代码自然会有人提供的! --------------------编程问答-------------------- 要注意,树的顶端通常其实不显示那一个(id为1的)TreeNode。也就是往往是直接使用 TreeView 的 Nodes 属性作为插入实际的一层节点的根,因此你最好找一个使用TreeNodeCollection类型参数的例子,而不是以TreeNode类型参数的例子。

当然更重要滴是了解了递归的概念,自己变通也很简单。 --------------------编程问答--------------------
引用 2 楼 taomanman 的回复:
递归绑定TreeView,太常见的功能了,请参考:
http://blog.csdn.net/taomanman/article/details/4816297

http://blog.csdn.net/taomanman/article/details/6561233

可以参考一下! --------------------编程问答-------------------- 你会发现节点上几百个之后运行效率非常的低。。。。我前几周会用treeview之后就放弃了,现在用的异步加载树类似CSDN论坛左边的
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,