从Linq填充TreeView - 仅添加最后一个父项

时间:2014-07-30 13:46:07

标签: c# asp.net .net linq treeview

我使用Linq从数据库加载TreeView,我的代码只添加了最后一个父项,但是该父项下的所有类别项。

我存储的来自Linq的工作正常,我在其他地方使用它们。

有人可以帮我找到我的错误吗?

由于

LinqtoDBDataContext db = new LinqtoDBDataContext();
var parents = db.GetParentCategories();

TreeNode parentNode = null;
foreach (var parent in parents)
{
    parentNode = new TreeNode(parent.ParentCatName.ToString());
    var categories = db.GetCategories(parent.ParentCatID);
    foreach (var category in categories)
    {
        TreeNode childNode = new TreeNode(category.CategoryName.ToString());
        parentNode.ChildNodes.Add(childNode);
        var products = db.GetProductsInCategory(category.CategoryID);
        foreach (var product in products)
        {
            TreeNode child3Node = new TreeNode(product.ProductName.ToString());
            childNode.ChildNodes.Add(child3Node);
       }
    }
}
TreeViewProducts.Nodes.Add(parentNode);

1 个答案:

答案 0 :(得分:1)

您正在为每个父级重置您的parentNode。将TreeViewProducts.Nodes.Add(parentNode);移到foreach循环中。