2017-02-08 2 views
0

У меня есть кендо сетку с идентификатором = «gridtemplate» определяется как показано ниже:Кендо сетки - Как получить идентификатор записи о щелкнули кнопку шаблона

 <div> 
      <h4>Download a data import template</h4> 
      <div data-role="grid" 
       data-editable="inline" 
       data-toolbar="['create', 'save']" 
       data-columns="[ 
           { 'field': 'TemplateID', 'hidden': 'true', 'width': 270 }, 
           { 'field': 'TemplateType' }, 
           { 'field': 'FileName','title': 'FileName'}, 
       {command:{ text: 'download', click: viewModel.Download, name:'Download' } } 

          ]" 
       data-bind="source: templates, 
         visible: isVisible, 
         events: { 
          save: onSave, 
          edit: onEdit 
         }" 
       style="height: 200px"></div> 
     </div> 

При нажатии на кнопку загрузки в каждой строке я хочу получите идентификатор записи, связанный с этой строкой. У меня есть функция под названием Скачать в моем ViewModel определяются следующим образом:

var viewModel = kendo.observable({ 
    isVisible: true, 
    Download: function (e) { 
     console.log(id);//want to see the TemplateID here 
    } 
}); 

Будучи относительно новым для кендо, я понятия не имею, как получить это. Пожалуйста помоги. Заранее спасибо.

ответ

1

Вы должны быть в состоянии получить DataItem из строки При нажатии кнопки в функции загрузки, как так:

var grid = this, 
    dataItem = grid.dataItem(e.currentTarget.closest("tr")); 

Затем с DataItem, у вас есть доступ ко всем полям Вашей модели.

+0

Работал как шарм. Жаль, что мое продвижение невозможно записать. Спасибо –

+0

Вы можете принять ответ :) – Shai

0

Вы можете попробовать это:

var viewModel = kendo.observable({ 
    isVisible: true, 
    Download: function (e) { 
     var grid = $("#gridtemplate").data("kendoGrid"); //assuming the grid name is gridtemplate 
     var selectedItem = grid.dataItem(grid.select()); 
     console.log(selectedItem.TemplateID); 
    } 
}); 
Смежные вопросы