单击时突出显示一个滑动的行

时间:2011-12-21 16:56:55

标签: javascript slickgrid

在这里幽默我。似乎像ExtJs这样的其他网格开箱即用,但对于我的生活,我找不到任何解决方案,让用户点击后网格保持突出显示。我的临时解决方案只是一个快速的css规则,用于突出显示鼠标悬停时的行。

真的没有选择只设置它吗?看起来我将不得不通过rowSelection模型进行设置,以便一次只能选择一行,是吗?

2 个答案:

答案 0 :(得分:7)

除了你的负面语气,我认为使用提供的Slick.RowSeletionModel并将网格选项中的multiSelect设置为false没有任何问题。

答案 1 :(得分:5)

您可以执行以下操作(JSFiddle demo here):

/////////////////////////////////////////////////////////////////////
// Augment grid object with a method to highlight the currently active row
//
mygrid.highlightActiveRow = function () {
  var currentCell;
  var $canvas = $(this.getCanvasNode());

  currentCell = this.getActiveCell();

  $canvas.find(".slick-row").removeClass("active");
  if (currentCell) {
    $canvas.find(".slick-row[row=" + currentCell.row + "]").addClass("active");
  }
};

mygrid.onActiveCellChanged.subscribe(function () {
  this.highlightActiveRow();
});

这标记了具有类active的当前行,可以根据需要设置样式:

/* Currently selected row */    
#mygrid .slick-row.active
{    
  background: #ff0000;
}

/* Currently selected cell */
#mygrid .slick-cell.active
{
  background: #00ff00;
}

可能有更好的方法可以做到这一点,但这对我有用。