Как рекурсивно заполнить ASP.NET Treeview? - PullRequest
0 голосов
/ 24 марта 2011

У меня есть древовидный элемент управления ASP.NET, который необходимо рекурсивно заполнять из ряда объектов.Как минимум, мне нужно иерархически отображать имя категории и описание для каждого источника и родительского узла.С этой целью я написал следующее на своей странице codebehind:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CATALooK.Automation;

namespace VBayUnMatched  
{
public partial class VBayCats : System.Web.UI.UserControl
{
    private int id;
    private CATALooK.Automation.SourceInfo source;
    private CATALooK.Automation.CategoryInfo parent;
    private string catID;
    private string catName;
    private string desc;
    private string rawData;
    private int advCatID;
    private DateTime lastUpdated;
    protected void Page_Load(object sender, EventArgs e)
    {
        CategoryController cc = new CategoryController();
        CategoryInfo ci = new CategoryInfo
        (id,source,parent,catID,catName,desc,rawData,advCatID,lastUpdated);
        //CATALooK.AdvCatInfoRemote[] acir = cc.getAdvancedCategories();
        TreeView trvUnMatchedCats = new TreeView();
        TreeNodeCollection tnColl = new TreeNodeCollection();
        TreeNode nodeSource = new TreeNode { Value = ToString(source) };
        TreeNode nodeParent = new TreeNode { Value = ToString(parent) };
        TreeNode nodeName = new TreeNode { Value = catName };
    }

    private void PopulateTreeview()
    {


    }

    private string ToString(SourceInfo source)
    {
        throw new NotImplementedException();
    }

    private string ToString(CategoryInfo parent)
    {
        throw new NotImplementedException();
    }

}

}

Как использовать рекурсию для назначения родителя для nodeParent, source для nodeSource и catName для nodeName?

Большое спасибо за вашу помощь и руководство.

1 Ответ

1 голос
/ 24 марта 2011

Самый простой (и наиболее читаемый) способ - создать класс, реализующий интерфейс IHierarchyData. Это предоставляет узел иерархической структуры данных, включая объект узла и некоторые свойства, которые описывают характеристики узла. Объекты, которые реализуют интерфейс IHierarchyData, могут содержаться в IHierarchicalEnumerable коллекциях и использоваться навигацией по сайту ASP.NET (например, картами сайтов) и элементами управления источниками данных.

отличный пример этого найден здесь и здесь вы видите как создать IHierarchyData рекурсивным способом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...