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

如何将DataTable 绑定到TreeView

从数据库中读出一个表,如何何它自动绑定到TreeView注意是asp.net的TreeView了就是VS2005自带的那个 --------------------编程问答-------------------- 还没用过2005的,应该表是树形结构的就可以直接绑定。 --------------------编程问答-------------------- 以前做过,使用递归做的
先找父节点,然后再找它的子节点。

当然你也可以生成XML文件再绑定。 --------------------编程问答-------------------- 将下面的方法添加到页代码中。
void PopulateCategories(TreeNode node)
{
    SqlCommand sqlQuery = new SqlCommand(
        "Select CategoryName, CategoryID From Categories");
    DataSet resultSet;
    resultSet = RunQuery(sqlQuery);
    if (resultSet.Tables.Count > 0)
    {
        foreach (DataRow row in resultSet.Tables[0].Rows)
        {
            TreeNode NewNode = new
                TreeNode(row["CategoryName"].ToString(),
                row["CategoryID"].ToString());
            NewNode.PopulateOnDemand = true;
            NewNode.SelectAction = TreeNodeSelectAction.Expand;
            node.ChildNodes.Add(NewNode);
        }
    }
}

将下面的方法添加到页代码中
void PopulateProducts(TreeNode node)
{
    SqlCommand sqlQuery = new SqlCommand();
    sqlQuery.CommandText = "Select ProductName From Products " +
        " Where CategoryID = @categoryid";
    sqlQuery.Parameters.Add("@categoryid", SqlDbType.Int).Value =
        node.Value;
    DataSet ResultSet = RunQuery(sqlQuery);
    if (ResultSet.Tables.Count > 0)
    {
        foreach (DataRow row in ResultSet.Tables[0].Rows)
        {
            TreeNode NewNode = new
                TreeNode(row["ProductName"].ToString());
            NewNode.PopulateOnDemand = false;
            NewNode.SelectAction = TreeNodeSelectAction.None;
            node.ChildNodes.Add(NewNode);
        }
    }
} --------------------编程问答-------------------- 楼上的代码只能读出一级节点,如果是多级节点呢,必须要用到递归,楼上的带不行吧 --------------------编程问答-------------------- http://www.cnblogs.com/blusehuang/archive/2007/05/15/747461.html --------------------编程问答-------------------- 应该是不能直接绑定的,用递归算法生成节点
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,