我使用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);
答案 0 :(得分:1)
您正在为每个父级重置您的parentNode。将TreeViewProducts.Nodes.Add(parentNode);
移到foreach
循环中。