在这里幽默我。似乎像ExtJs这样的其他网格开箱即用,但对于我的生活,我找不到任何解决方案,让用户点击后网格保持突出显示。我的临时解决方案只是一个快速的css规则,用于突出显示鼠标悬停时的行。
真的没有选择只设置它吗?看起来我将不得不通过rowSelection模型进行设置,以便一次只能选择一行,是吗?
答案 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;
}
可能有更好的方法可以做到这一点,但这对我有用。