9

ドラッグ アンド ドロップによる列の並べ替えは優れた機能ですが、ユーザーが特定の (データ以外の) 列を移動できないようにするにはどうすればよいですか?

たとえば、複数選択グリッドにチェックボックス セレクターを使用していますが、この列は常に左側にロックする必要があり、他の列は自由に並べ替えることができます。

4

2 に答える 2

2

私はこれを試しました:

function setupColumnReorder() {
var checkBoxColumn = $headers.children([0]).attr('id');
$headers.sortable({
items: "div:not('.slick-resizable-handle','#"+checkBoxColumn+"')",
...

しかし、その前に他の列をドラッグすると問題が発生しました。それから私はこれを試しました:

grid.onColumnsReordered.subscribe(function (e, args) {
   if (myGridColumns[0].id != grid.getColumns()[0].id)
   {
       grid.setColumns(myGridColumns);
   }
   else 
   {
       myGridColumns= grid.getColumns();
    }
});

そしてそれはちょうど良かったです。

于 2014-01-17T13:24:35.083 に答える
2

jQuery UI でソート可能なデモを見て、slick.grid.js の setupColumnReorder 関数を変更して特定の項目を除外しました。チェックボックス列を除外することで、他の列をその前にドラッグしても、並べ替えを防ぐことができました。

function setupColumnReorder() {
var checkBoxColumn = $headers.children([0]).attr('id');
$headers.sortable({
items: "div:not('.slick-resizable-handle','#"+checkBoxColumn+"')",
...

私のチェックボックス列は常に最初にあるので、そのようにIDを取得します. ちょっとしたハックですが、うまくいきました。

于 2011-12-19T03:06:46.653 に答える