在Kendo Grid中右键单击获取选定的行

Mah*_*hib 3 kendo-ui kendo-grid

我有一个剑道网格,我想检测右键单击和左键单击,所以基于这些我做两件事.我曾经在左边或右边点击从网格获取ID并且工作正常.但是要修复IE11点击问题,我必须将kendo.js更新为2013.2.716版本,之后它会检测到左/右点击,但"右键单击"无法获得所选行ID.以下是我检测左/右点击的代码,PlodId是我网格中的一列:

function LoadMainShiftGrid() {

//For Right Click --> Delete Selected Shift

$("#shiftReport").delegate("tbody>tr", "contextmenu", function (e) {
    if (e.which == 3) {
        $("#plodDetails").hide();            
        var gridData = $('#shiftReport').data("kendoGrid");
        var selectedRowData = gridData.dataItem($('.k-grid').find("tr.k-state-selected"));

    // MY PROBLEM FOR RIGHT CLICK SELECTEDROWDATA COMES TO NULL <<<<

        var SelectedPlodId = selectedRowData.PlodId;                        
    }
});

//For Left Click --> Show Plod Detials

$("#shiftReport").delegate("tbody>tr", "click", function (e) {
    if (e.which == 1) {
        var gridData = $('#shiftReport').data("kendoGrid");
        var selectedRowData = gridData.dataItem($('.k-grid').find("tr.k-state-selected"));
        var SelectedPlodId = selectedRowData.PlodId;           
    }
});
}
Run Code Online (Sandbox Code Playgroud)

先感谢您.

Mah*_*hib 5

我已经将点击绑定功能更改为'mousedown'并手动选择行(谢谢@ drw85的想法),然后它工作正常.

function LoadMainShiftGrid() {

$('#shiftReport').data('kendoGrid').tbody.on('mousedown', function (e) {

    //select the clicked row manually; this resolves all problem :D
    $('#shiftReport').data("kendoGrid").select(e.target.parentElement);

   if (e.which == 3) {
        $("#plodDetails").hide();            
        var gridData = $('#shiftReport').data("kendoGrid");
        var selectedRowData = gridData.dataItem($('.k-grid').find("tr.k-state-selected"));    
        var SelectedPlodId = selectedRowData.PlodId;                        
    }

    //For Left Click --> Show Plod Details    
    if (e.which == 1) {
        var gridData = $('#shiftReport').data("kendoGrid");
        var selectedRowData = gridData.dataItem($('.k-grid').find("tr.k-state-selected"));
        var SelectedPlodId = selectedRowData.PlodId;           
    }
});
}
Run Code Online (Sandbox Code Playgroud)