Kendo网格 - 如何获取点击模板按钮的记录ID

时间:2017-02-08 15:51:40

标签: jquery kendo-ui kendo-grid kendo-asp.net-mvc

我有一个kendo网格,id =" 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>

单击每行中的下载按钮,我想获得与该行关联的记录ID。我在我的viewmodel中有一个名为Download的函数,定义如下:

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

对剑道来说相对较新,我不知道怎么做到这一点。请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:2)

您应该能够在下载功能中获取所单击按钮行的dataItem,如下所示:

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

然后使用dataItem,您可以访问模型的所有字段。

答案 1 :(得分: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);
    }
});