如何在 kendo 命令中传递 ID

How to pass ID in kendo command

 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 传递给 kendo 中的此函数?

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

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

这是一个例子:

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);
  });
}

Fiddle: https://dojo.telerik.com/ADiteHOc