如何防止 Kendo 网格中的编辑器事件?

how can I prevent the editor event in Kendo grid?

当我点击附件中的下载link时,我只想执行下载事件,而不执行编辑器事件。

道场示例:https://dojo.telerik.com/EcEDiGUB/27

HTML:

<div id="grid"></div>

JS:

var grid;
$(document).ready(function(){
grid = $("#grid").kendoGrid({
  columns: [
    { 
      field: "name",
    },
    { 
      field: "file",
      template: function(e){
       return '<div class="box">' + e.file + '</div>';
      },
      editor: function(e){
        alert("open media editor");
        return true;
      }
    }
  ],
  dataSource: {
   data: [
    { id: 1, name: "Jane Doe", file: "<div class='container'></div>" +
                                        "<div class='file k-icon k-i-file-pdf'></div>" +
                                        "<div class='download k-icon k-i-download'></div>" +
                                      "</div>" },
    { id: 2, name: "John Doe", file: "<div class='container'></div>" +
                                        "<div class='file k-icon k-i-file-pdf'></div>" +
                                        "<div class='download k-icon k-i-download'></div>" +
                                      "</div>" +
                                      "<div class='container'></div>" +
                                        "<div class='file k-icon k-i-file-xls'></div>" +
                                        "<div class='download k-icon k-i-download'></div>" +
                                      "</div>" }
   ],
   schema:{
    model: {
     id: "id",
     fields: {
       file: { type: "string"}
     }
    }
   }
  },
  editable: true,
}).data("grid");


$(".download").on("click", function(e){
  e.preventDefault();
  alert("download media"); 
});

现在是可编辑模式:

editable: true,

应该保留,因为既可以编辑也可以开始下载。

如何在不触发编辑器事件的情况下通过单击下载图标开始下载?

您可以使用 columns.editable 属性:

{ 
      field: "file",
      template: function(e){
       return '<div class="box">' + e.file + '</div>';
      },
      editable: function(){
        return false;
      },
      editor: function(e){
        alert("open media editor");
        return true;
      }
    }

Dojo