ASP.NET TreeView: невозможно получить TreeNode.Parent и TreeNode.ChildNodes при использовании TreeView.TreeNodePopulate. - PullRequest
0 голосов
/ 16 июля 2011

Я заполняю узлы TreeView элемента управления в тот момент, когда пользователь расширяет родительский узел - впервые - с помощью Заполнить по требованию , как описано в ASP.NET: Как создать расширяемыйПустой TreeNode .Процесс заполнения работает нормально.

Проблема в том, что когда я пытаюсь получить TreeNode.Parent, я получаю ноль , даже если TreeNode не был корневым узлом.Кроме того, TreeNode.ChildNodes возвращает пустую коллекцию, даже если для указанного TreeNode ...

было несколько дочерних узлов. Есть ли объяснение этому?И что я могу сделать, чтобы решить это?

Спасибо.

1 Ответ

0 голосов
/ 09 сентября 2013

Если ваш пользователь выбрал корневой родительский узел, приведенный ниже пример кода должен работать для заполнения дерева с использованием набора данных:

защищенный void ParseTreeNodes (отправитель объекта, System.Web.UI.WebControls.TreeNodeEventArgs e)

{
    //Uncomment this line below and inspect the 'nodes' variable if you need to inspect all of the nodes
    //var nodes = this.MyTreeView.Nodes;

    //Some call to get data for example
    var dataCollection = GetSomeDataForTheTree()

    //Iterate through and create a new node for each row in the query results.
    //Notice that the query results are stored in the table of the DataSet.
    foreach (MyClassWithData data in dataCollection)
    {
        //Create the new node using the values from the collection:
        TreeNode newNode = new TreeNode(data.LastName, system.ID)
            {
                //Set the PopulateOnDemand property to false, because these are leaf nodes 
                and do not need to be populated on subsequent calls.
                PopulateOnDemand = false,
                SelectAction = TreeNodeSelectAction.Select
            };

        //Add the new node to the ChildNodes collection of the parent node.                    
        e.node.ChildNodes.Add(NewNode);
    }
}

Я добавил дополнительную строку кода для проверки текущих узлов в древовидной структуре, если у вас есть проблема с родительским узлом или вы знаете конкретные значения в коллекции Nodes.

...