2011-12-21 22 views
1

ユーモアが私にあります。 ExtJsのような他のグリッドのように思えるかもしれませんが、私の人生では、グリッドをユーザーがクリックした後でも強調表示されたままにすることはできません。私の暫定的な解決策はマウスオーバーで行を強調表示するためのクイックCSSルールです。クリックすると滑りグリッド行が強調表示されます

これを設定するオプションはありませんか?私はrowSelectionモデルを通過して一度に選択できる行が1つだけになるように設定する必要があるようです。

答えて

5

あなたはこの(JSFiddle demo here)のような何かを行うことができます。

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

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

へのより良い方法があるかもしれません:

///////////////////////////////////////////////////////////////////// 
// 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で現在の行をマークしますこれを行うが、これは私のために働いた。

7

あなたのネガティブトーンはさておき、提供されたSlick.RowSeletionModelを使用し、グリッドオプションでmultiSelectをfalseに設定することには何も間違いはありません。

+0

このRowSelectionModelに関するドキュメントはありますか?私はそれが言及して見たことがありますが、私はそれの例を見つけることもできません! – dallin

+3

私はちょうど著者が最近(あるいは少なくとも私が盲目だったと思っていた、あるいは私が盲目だったと思った)行選択の例を加えたことに気づいた。誰でもこれをやりたいと思うなら、これは一番簡単な方法です。この例を見てください:[行の選択と並び替え](http://mleibman.github.com/SlickGrid/examples/example9-row-reordering.html) 。 – dallin

関連する問題