1

У меня есть представление дерева кендо, которое заполнено иерархическим источником данных. Я хочу, чтобы родительский узел был выбран и расширен при загрузке древовидного представления. Я написал следующее расширение и выберите для этого. Но он не работает. Может ли кто-нибудь предоставить какое-либо решение?Проблема с расширением и выбором первого узла дерева дерева кендо

var treeData = new kendo.data.HierarchicalDataSource({ 

    transport: { 
     read: { 
      url: NsMenuMaster.urls.getMenuTreeUrl, 
      data: data, 
      datatype: "json", 
      type: "POST" 
     } 
    }, 
    schema: { 
     model: { 
      id: "MenuConfigUid",     
      children: "Child" 

     } 
    } 
}); 

$("#MenuTreelist").kendoTreeView({ 
    dataSource: treeData, 
    dataTextField: ["MenuText"], 
    dataValueField: ["MenuConfigUid"], 
    height: 1000, 
    template: kendo.template($("#treeview-template").html()), 
    checkboxes: { 
     template: "<input type='checkbox' name='StudentClassID' value='#= item.id #' />", 
     checkChildren: true 
    }, 
    select: NsMenuMaster.onSelect 
}); 

$("#MenuTreelist").getKendoTreeView().select(".k-first"); 
$("#MenuTreelist").getKendoTreeView().expand(".k-first"); 

ответ

2

Место, где у вас есть .select() и .expand(), находится в неправильном месте. В тот момент, когда вы в настоящее время вызываете их, в нем еще нет узлов, поскольку удаленный источник данных еще не заполнен.

Вам необходимо переместить код выбора и развернуть на после удаленный источник данных считывается и существует .k-первый узел.

Вы можете сделать это путем связывания с первым событием DataBound из TreeView, то есть:

$("#MenuTreelist").kendoTreeView({ 
    .... 
}); 

var treeView = $("#MenuTreelist").getKendoTreeView(); 
treeView.one("dataBound", function() { 
    treeView.select(".k-first"); 
    treeView.expand(".k-first"); 
}); 

Пример: http://dojo.telerik.com/@Stephen/iYIBo

+0

Спасибо так много. Ты гений. :) –

Смежные вопросы