如何在剑道命令中传递ID


columns: [
{
field: "Name",
title: "Name"
},
{
template: "<div>#if(data.Count > 0){#<a class='undo' onClick='showSiteName(#:Id#,`#:Name#`)'>#:Count# </a>#} else{#N/A#}#</div>",
field: "Count",
title: ""
},
{
command: [
{ name: "edit", template: "<a class="k-icon k-i-edit"  onclick='onButtonClick(#:Id#)' title="Update"></a>" },
{ name: "delete", template: "<span class="k-icon k-i-delete" title="Delete"></span>", visible: function (data) { return data.Count == "0" } }
],
title: "Action"
}
]

在上面的代码onButtonClick(#:Id#),实际上我想传递Id作为一个参数,但现在我得到Id未定义的错误消息。

如何将点击行的ID传递给剑道中的此函数?

首先,删除已经设置的onclick事件。然后为您的网格设置dataBound事件。在事件中,绑定到编辑按钮的click事件。在click事件中,执行以下操作:

  1. 获取最近的tr
  2. 从kendoGrid调用dataItem方法获取数据项,传递tr
  3. 从数据项
  4. 获取数据点

下面是一个例子:

dataBound: function() {
$('.k-grid-edit').on('click', function(e) {
e.preventDefault();
var tr = $(e.target).closest("tr");
var data = $("#grid").data('kendoGrid').dataItem(tr);
var id = data.Id; 
console.log(id);
});
}

小提琴:https://dojo.telerik.com/ADiteHOc

最新更新