【问题标题】:getting the click event in a kendo grid在剑道网格中获取点击事件
【发布时间】:2013-10-18 17:44:51
【问题描述】:

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

var onDataBound = function () {
    selectItem.apply(this);
}

grid.dataBound = onDataBound;

var selectItem.apply = function (e) {
    console.log(e);
}

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

【问题讨论】:

    标签: javascript html jquery kendo-ui kendo-grid


    【解决方案1】:

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

    例子:

    $("#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 example.

    【讨论】:

      【解决方案2】:

      在声明网格时使用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 是您可以传递的绑定数据项。

      【讨论】:

      • 非常感谢!这是我的项目所需要的,并且对于未来的开发人员来说清晰易读。
      【解决方案3】:

      我知道这已经很老了,但我相信没有一个解决方案涵盖了事件也被应用于表头的事实。例如,如果您有表格过滤器(按升序/降序排序),这可能会导致问题。添加点击事件的正确方法是针对表体,如下:

      $("#grid tbody").find("tr").click(addYourFunctionHere);
      

      【讨论】:

        【解决方案4】:

        如果您只想停止传播,只需调用 event.stopPropagation() 或 event.stopImmediatePropagation();

        function onRowDelete(dataItem) {
                   
            event.stopImmediatePropagation();
        
            showConfirmation(dataItem);        
        }
        

        【讨论】:

          猜你喜欢
          • 2014-09-17
          • 1970-01-01
          • 2013-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多