【问题标题】:How to pass ID in kendo command如何在剑道命令中传递 ID
【发布时间】:2021-09-13 09:52:49
【问题描述】:
 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-ui kendo-grid kendo-asp.net-mvc


    【解决方案1】:

    首先,删除您设置的 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);
      });
    }
    

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

    【讨论】:

    • 无法读取 undefined (reading 'dataItem') 的属性。我越来越喜欢了
    • @xyz - 您需要使用您用于 kendoGrid 的选择器更改 #grid。您没有在代码中包含它,所以我只是猜到了选择器。
    猜你喜欢
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    相关资源
    最近更新 更多