无法在KendoUI树视图中取消选择所选节点

时间:2012-12-11 17:12:12

标签: kendo-ui kendo-treeview

我有一个使用Kendo UI树视图的树状结构。每个节点都显示为超链接,点击每个节点时,将打开一个新的kendotabstrip。我的问题是,如果我选择一个节点,结果在新选项卡中显示正常,但如果我关闭新打开的选项卡然后选择相同的节点,则由于已经选择了节点,因此不会打开新选项卡。如果我必须选择相同的节点,那么我必须访问另一个节点,然后返回节点。

使用以下代码段

打开新标签后,我尝试取消选择所选项目

var treeview = $(#grpTree).data(" KendoTreeView");

var selNode = treeview.select();

selNode.find(" span.k状态选择&#34)。removeClass(" K状态选择&#34)

但节点未被选中。有没有其他办法可以做到这一点,或者我错过了什么。请指导我。

提前致谢。

4 个答案:

答案 0 :(得分:7)

我知道这篇文章有点陈旧,但随着Telerik不断升级其组件,我想我会把它放在这里,以便人们可以意识到这一变化向前发展。

您可以使用以下语法取消选择所有选定的节点:

    var treeView = $("#treeView").data("kendoTreeView");
    treeView.select($());

来源:Kendo UI Treeview Documentation for Select

答案 1 :(得分:1)

是的,这是设计的。如果要附加将每次触发的单击处理程序(无论是否已选择该节点)。您可以附加如下的委托事件:

$('#treeviewName').on('click','.k-item',function(e){
      var clickedNode = $(this);
      var treeViewClientObject = $(e.delegateTarget).data().kendoTreeView;
})

答案 2 :(得分:0)

这总是调用更改函数,因此这可以是另一种解决方案:

    $("#favorite_tree").kendoTreeView({
change: function () {
    if (this.dataItem(this.select())) {
        var treeView = $("#calendar_tree").data("kendoTreeView");
        treeView.select($());
    }
}
}).data('kendoTreeView');

$("#calendar_tree").kendoTreeView({
change: function () {
    if (this.dataItem(this.select())) {
        var treeView = $("#favorite_tree").data("kendoTreeView");
        treeView.select($());
    }
 }
}).data('kendoTreeView');    

答案 3 :(得分:0)

我的代码:

var treeview=$(#grpTree).data("KendoTreeView");

treeview.select(null);