簡體   English   中英

如何在Telerik RadTreeView中設置SelectedNode和設置選中節點的Focus?

[英]How to set the SelectedNode and Set the Focus of the selected node in Telerik RadTreeView?

我將 Telerik RadTreeView 與 ASP.Net C# 一起使用。我可以使用以下代碼設置選定節點:

        var node = radTreeViewMenuStructure.Nodes.FindNodeByValue(linkID.ToString());

        if (node != null) // <- equals null when not on the root of the tree
        {
            node.Selected = true;
            node.Expanded = true;
            node.ExpandParentNodes();
            node.Focus();
        }

上面的代碼僅在節點剛好位於根之外且未包含在父節點中時才設置選定節點。 My node = null when choosing an ID of a node that is enclosed within a parent node. 有什么建議么?

The.FindNodeByValue 在樹視圖的節點中查找。 它不查看每個子節點。 解決方案是遞歸地遍歷樹。 這是我最終解決問題的代碼:

    private void SelectLink(int linkID, RadTreeNodeCollection rootNodes)
    {
        var node = rootNodes.FindNodeByValue(linkID.ToString());
        if (node != null)
        {
            node.Selected = true;
            node.Expanded = true;
            node.ExpandParentNodes();
            node.Focus();

            ... Do some other work ...

            return;
        }

        // for each node with children  
        foreach (RadTreeNode item in rootNodes.Cast<RadTreeNode>().Where(item => item.Nodes.Count > 0))
        {
            // Recursive call to self to walk the tree
            SelectLink(linkID, item.Nodes);
        }
    }

然后,我只需使用根 RadTreeView 調用該方法:

SelectLink(radTreeViewMenuStructure.Nodes, idToFind);

您只需要調用node.ExpandParentNodes();

你只需要做: radTreeViewMenuStructure.FindNodeByValue() 這將搜索整棵樹。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM