Search code examples
slickgrid

Slickgrid select row on right click before displaying context menu


Using this I can display a menu by right clicking a cell:

// right click context menu
grid.onContextMenu.subscribe(function (e) {
  e.preventDefault();
  var cell = grid.getCellFromEvent(e);
  //grid.setSelectedRows(cell.row);
  $("#contextMenu")
      .data("row", cell.row)
      .css("top", e.pageY)
      .css("left", e.pageX)
      .show();
  $("body").one("click", function () {
    $("#contextMenu").hide();
  });
});

However I would like the row to be selected, both as visual confirmation that the correct row has been right-clicked, and because some of the menu items use the selected row for their functions.

This:

grid.setSelectedRows(cell.row);

doesn't work. What is the correct way?


Solution

  • It might be as simple as the fact that setSelectedRows takes an array of row indexes. Try

    grid.setSelectedRows([cell.row]);