2014-11-21 3 views
0

Я получил этот метод контроллера, который посылает элементы дерева к дереву в представлении:Получение идентификатор выбранного узла в кэндо TreeView

private IEnumerable<TreeViewItemModel> GetTrees() 
{ 
    InstallationPlaceModel ipm = new InstallationPlaceModel(); 
    var gipo = ipm.getRootInstallationPlaces(); 
    List<TreeViewItemModel> fullTree = new List<TreeViewItemModel>(); 

    foreach (wsInstallationPlace.installationPlaceOutput father in gipo.installationPlaces) 
    { 
     var gipo2 = ipm.getChildInstallationPlaces(father.installationPlace.id); 
     List<TreeViewItemModel> childTree = new List<TreeViewItemModel>(); 

     foreach (wsInstallationPlace.installationPlaceOutput child in gipo2.installationPlaces) 
     { 
      TreeViewItemModel childTreeItem = new TreeViewItemModel 
      { 
       Text = child.installationPlace.mediumDescription, 
       Id = child.installationPlace.id 
      };   
      childTree.Add(childTreeItem); 
     } 
     TreeViewItemModel fatherTreeItem = new TreeViewItemModel 
     { 
      Text = father.installationPlace.mediumDescription, 
      Id = father.installationPlace.id, 
      Items = childTree 
     }; 
     fullTree.Add(fatherTreeItem); 
    } 
    ViewBag.mytree = fullTree; 
    return fullTree; 
} 

Это Кендо TreeView:

@(Html.Kendo().TreeView() 
    .Name("treeview") 
    .DragAndDrop(true) 
    .Events(e => e.Select("onSelect")) 
    .BindTo((IEnumerable<TreeViewItemModel>)ViewBag.mytree) 
) 

И эта функция для обработки выбора узла дерева:

function onSelect(e) { 
    alert(this.text(e.node)); 
} 

при выборе узла, уведомление с текстом узла является ди растопыренными. Я хотел показать идентификатор узла. Я пробовал:

function onSelect(e) { 
    alert(this.id(e.node)); 
} 

но не повезло. Как вы можете видеть в методе контроллера, я заполняю text и id, но я могу получить доступ только к тексту. Любая помощь?

LIVE DEMO

ответ

1

Для получения id выбранного узла, вы должны использовать $(e.node).data("id").

function onSelect(e) { 
    alert($(e.node).data("id")); 
} 
+1

Спасибо, OnaBai, он работает. Я поражен тем, что решения не интуитивно понятны, знаете ли вы, где я могу найти документацию, чтобы вести меня на Kendo? Документация важна, и я не вижу никакой полезной. Кроме того, я вижу, что вы являетесь экспертом по кендо, не могли бы вы проверить [этот вопрос] (http://stackoverflow.com/questions/26929767/passing-kendo-grid-selected-item-into-kendo-window) и Помоги мне? Еще раз спасибо. +1 и правильный ответ – chiapa

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