使用 id 打开 Kendo UI TreeView 节点
Posted
技术标签:
【中文标题】使用 id 打开 Kendo UI TreeView 节点【英文标题】:Open Kendo UI TreeView node using id 【发布时间】:2013-06-03 10:02:08 【问题描述】:我正在使用Kendo UI TreeView 来生成我的树。这是tree documentation。
它工作正常,但现在我想使用id
展开(打开)一个节点。
我找到了一些代码 here,但它不适用于我的代码:
var serviceRoot = "search/treej.php";
homogeneous = new kendo.data.HierarchicalDataSource(
transport:
read:
url: serviceRoot,
dataType: "jsonp"
,
schema:
model:
id: "entity_id",
hasChildren: "child"
);
$("#treeview").kendoTreeView(
checkboxes:
checkChildren: false
,
dataSource: homogeneous,
dataTextField: "value"
);
var $tree = $("#treeview").kendoTreeView(
select: function (event)
var $item = $(event.node);
console.log( $item );
alert( "selected" );
);
var $selected = $('#4'); // here i am passing static values
var $treePath = $selected.parentsUntil($tree, "li");
var treeView = $tree.data('kendoTreeView');
// Expand the tree in order to show the selected item
treeView.expand( $treePath );
// Gotta make both calls...
treeView.select( $selected );
treeView.trigger( 'select', node: $selected );
我还在 Kendo 网站上找到了此代码,可能会有所帮助:
var dataSource = treeview.dataSource;
var dataItem = dataSource.get(5); // find item with id = 5
var node = treeview.findByUid(dataItem.uid);
【问题讨论】:
实际上看起来应该可以正常工作。你确定var $selected = $('#4');
真的在寻找一个元素吗?
【参考方案1】:
你可以尝试替换
var $selected = $('#4');
你的第二部分
var dataSource = treeview.dataSource;
var dataItem = dataSource.get(4); // find item with id = 4
var $selected = treeview.findByUid(dataItem.uid);
【讨论】:
以上是关于使用 id 打开 Kendo UI TreeView 节点的主要内容,如果未能解决你的问题,请参考以下文章