Clark
asked on 13 Dec 2021, 09:10 PM
| edited on 31 Mar 2022, 12:33 AM
Hello,
I would like to display the filter results of only the 3rd level nodes of my radDropDownTree.
In the example below, I only want 3rd level nodes that have "web" in their text field displayed.
I've marked out what I don't want to see.
Thanks!
--Clark
1 Answer, 1 is accepted
0
Accepted
Peter Milchev
Telerik team
answered on 16 Dec 2021, 10:43 AM
Hi Clark,
This functionality would require overriding some of the internal filtering functions of the DropDownTree. To do that, you can please the following script somewhere below the ScriptManager:
<script>var $T = Telerik.Web.UI;
Telerik.Web.UI.RadDropDownTree.Manager.prototype._filterNodes = function (text) {
var nodes = this._embeddedTree.get_allNodes(),
count = nodes.length,
regEx,
i;
if (this._filter == $T.DropDownTreeFilter.StartsWith)
regEx = newRegExp("^\\s*" + $T.RadDropDownTree.Manager._regExEscape(text), "im");
else
regEx = newRegExp($T.RadDropDownTree.Manager._regExEscape(text), "gim");
for (i = 0; i < count; i++) {
var currentNode = nodes[i];
var matchIsFound;
if (currentNode.get_level() !== 2) {
matchIsFound = false;
} else {
matchIsFound = this._matchNode(currentNode, text, regEx);
}
if (matchIsFound) {
this._handleVisibleParents(currentNode);
this._filteredVisibleNodes.push(currentNode);
}
else {
this._handleHiddenNode(currentNode);
}
}
this._hideNodes(this._filteredHiddenNodes);
this._showNodes(this._filteredVisibleNodes);
this._filteredVisibleNodes = [];
this._filteredHiddenNodes = [];
}
</script>