2012-01-23 48 views
1

ユーザーが行をクリックして行を選択できるようにするには、アプリケーションの機能が必要です。さらに、の機能を追加したいと考えています。/Shift +クリックして行を選択してください。SlickGrid - カスタムコントロールなしで行を選択

各行にチェックボックスを追加して行を選択する例を見ました。私はそのようなチェックボックスをアプリケーションに追加したくありません。

は私がhttp://groups.google.com/group/slickgrid/browse_thread/thread/96a5291161d41efa

がここに物事のより良い方法があるです歳ですが、私の質問に答えるように思われるリンクを介して来ましたの?

+0

「選択された」表の行要素ではどうしますか? – Jasper

答えて

6

SlickGrid DOMは、静的ではありません - それを修正することは避けてください直接。

この機能は、プラグイン可能なSelectionModelを介してSlickGridに既に組み込まれています。ディストリビューションには、Slick.CellSelectionModelとSlick.RowSelectionModelの2つの選択モデルが含まれています。あなたがする必要があるのは、

grid.setSelectionModel(new Slick.RowSelectionModel())です。

たとえば、http://mleibman.github.com/SlickGrid/examples/example9-row-reordering.htmlを参照してください。

+0

おかげでティム、まさに私が探していたものです。 –

+2

"錫"ですが、歓迎です:) – Tin

+0

こんにちは錫、私はこの[新しいSlick.RowSelectionModel()]を実行するとRowSelectionModel()関数を見つけることができません。アイデアはありますか? – Stiger

1

これは83Kbのファイル(JSのみ)ですが、これは恐ろしいことではありませんが、あなたがしようとしているものにはかなり大きなものです。あなたがしたいすべてがctrl+shiftが開催されたダウンしている場合tr要素をクリックすると、あなたは、コードの83キロバイトよりもはるかに少ない使用することができますしながら、テストがある場合

//select the parent table element, then select its child (the `tbody` element) then get its children which will be the `tr` elements 
$('table').children().children().on('click', function (event) { 

    //check to see if ctrl+shift is being held while this click occured 
    if (event.ctrlKey === true && event.shiftKey === true) { 

     //if ctrl+shift were held during the click then you know this element has been selected 
     //and you can do what you need, in this demo I'm just adding a class to denote that the element has been selected 
     $(this).toggleClass('selected'); 
    } 
}); 

あなたが見ることができるように、(上記のデモは600のバイトです)。ここで

はデモです:.on()はjQueryの1.7であり、この場合には新しいものであることをhttp://jsfiddle.net/YZytJ/

.bind()を使用するのと同じです:http://api.jquery.com/on

+0

こんにちはジャスパー、迅速な対応に感謝します。私がここで持っている基本的な懸念は、グリッドの構造(この場合はテーブル)を中心にして解決策にいくつかの基本的な仮定があることです。何らかの理由で構造が変更された場合(またはレンダラーが追加された場合)、問題が発生する可能性があります。だから、スリックグリッドのためにすぐに使えるものがあるかどうかは分かっていますか? 私は自分のアプリケーションにHTMLテーブルコントロールを用意していますが、あなたが提供したソリューションをそのコントロールに使用することは間違いありません。 -Yazad Khambata –

+0

私は 'slickgrid'プラグインにはコメントできません。私は一度も使ったことがありません。しかし、少なくとも幾分静的なHTML構造を使用する可能性が最も高いです。開発ツールを使用してDOMを検査し、どのようなHTML構造のslickgridが作成されているかを把握することができます。 – Jasper

+0

もう一度Jasperに感謝します... 私はSlickGridのdom構造を検査し、構造はDIVに基づいています。私は、あなたが共有した例に基づいて、SlickGridのために並置することができるはずだと思うが、はい、誰かからより多くのSlickGrid特有のou-of-the-boxソリューションへの解決策やポインタがあれば、 :) –

関連する問題