Well, I managed to get something working - but, it's ugly and feels like a hack. Not to mention, if the structure of TreeView rendered by Kendo changes, this will probably break. Is there a better way to do this?
01.
// node is the starting tree node - e.g. tree.root[0]
02.
// folders is an array of folder names - e.g. ["documents", "pictures", "kittens"]
03.
function
treeSelectFolder(node, folders) {
04.
if
(folders.length > 0) {
05.
var
txt = folders.shift();
06.
console.log(
"tree node "
, node);
07.
var
$node = $(node);
08.
$node.children(
"li.k-item"
).find(
"span.k-in"
).each(
function
(){
09.
var
$
this
= $(
this
);
10.
if
($
this
.text().toLowerCase() == txt) {
11.
var
$el = $
this
.closest(
"li.k-item"
);
12.
efTree.expand($el);
13.
if
(folders.length == 0) {
14.
efTree.select($el);
15.
efTree.trigger(
'select'
, {node: $el} );
16.
}
17.
else
{
18.
treeSelectFolder($($el.get()[0]).find(
"ul.k-group"
).get()[0], folders);
19.
}
20.
}
21.
});
22.
}
23.
}