使用 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 节点的主要内容,如果未能解决你的问题,请参考以下文章

MVC Grid 的 Kendo UI 如何隐藏 ID 列

如何使用嵌套 Json 填充 Kendo UI 网格?

如何在 kendo ui 网格中选择关键行

MVC Kendo UI Grid = 自定义按钮无法返回选定的行 ID

Kendo UI 树视图绑定

如何过滤文件kendo-ui上传?