在kendo网格中获取click事件

我正在尝试获取Kendo Grid的点击事件,这样我就可以将内容绑定到shift和ctrl click。 我无法使用固有的多选Kendo提供,因为它不支持拖放。 当我在dataBound事件之后创建一个函数时,我的函数在点击时被调用,但它不是典型的点击事件。

var onDataBound = function () { selectItem.apply(this); } grid.dataBound = onDataBound; var selectItem.apply = function (e) { console.log(e); } 

有什么想法吗? 提前致谢。

初始化Grid之后,您应该将处理程序绑定到click事件。

例:

 $("#grid").on("click", "table", function(e) { console.log("clicked", e.ctrlKey, e.altKey, e.shiftKey); }); 

您可以使用:

  • e.ctrlKey用于检测是否按下了ctrl
  • e.altKey用于检测alt是否被按下。
  • e.shiftKey用于检测是否按下了shift

如果要仅检测表格主体中的单击,可以将"table"替换为"tbody""td"

Jsfiddle的例子 。

声明网格时使用dataBound事件:

 grid = $("#grid").kendoGrid({ ... ,dataBound=onDataBound }); var onDataBound = function(e) { $("#grid").find("tr").click(selectItem.apply); }; var selectItem.apply = function (e) { var dataItem = $("#grid").data("kendoGrid").dataItem(this); if(e.ctrlKey) alert('Ctrl + click on ' + dataItem.column1); } 

dataItem是您可以传递的绑定数据项。