2016-07-08 28 views
0

ソート可能なdataTableには、データをクリックして編集できるデータがあります。dataTablesは並べ替えを一時的に無効にします

クリックする前に、それは次のようになります。

<input type='text' value='...' size=3 disabled> 

とをクリックすると:

$('#table1 tbody').on('click', 'tr', function() 
{ 
    var olddata = ""; 
    olddata = table.cell(this, 3).data(); 
    table.cell(this, 3).data("<input type='text' value='" + olddata + "' size=3 style='background-color:white'>"); 
}); 

を使用すると、行をクリックしたときにしかし、それがあれば、それは今も余分なHTMLコードが含まれているので、位置を変更し、これはアクティブな注文列であり、底部または上部で終わる。

私はソート使用:

var columnSet = 
[ 
    ... 
    {title: "Mycolumn", width:"1%", "type": "string"}, 
    ... 
]; 

をだから私の質問は、それが一時的に行がクリックされたときに、テーブル全体でソート無効にしてから、編集を終えたときに再び有効化することが可能であるか、または代替として、ソートに基づいて、値属性?

+0

の場合、特定の列をソート可能かどうかについて言及する必要があります。任意の列のソートが必要ない場合は、すべての列をfalseに設定できます。プロパティ名は "aoColumns"です。 –

+0

はい、私はそれらを並べ替えることができるようにしたい、ちょうどユーザーが行を編集するためにクリックしたときではありません。 – user3592255

+0

データテーブルの振る舞いのソートを変更するのは難しいので、データテーブルを再初期化する必要があります。提案は、インライン編集を行わず、別のページにユーザをリダイレクトすることではなく、ブートストラップを使用している場合は、行を編集するためにブートストラップモーダルを使用することです。 –

答えて

0

は、[OK]を私は、このタイプを使用して、小さなトリック

var columnSet = 
[ 
    ... 
    {title: "Mycolumn", width:"1%", "type": "html"}, 
    ... 
]; 

を使用して解決するために管理:HTMLは「<」の間のすべてを削除し、「>」しかしこれは、DataTableのは

ので、空のセルをソートするためにしようと私を残し

<input value="..."> 

は唯一私が使用してこれを解く "<" と ">"

間でコンテンツを持っています

olddata = $(table.cell(row, 5).data()).attr("value"); 
table.cell(row, 5).data("<input type='text' value='" + olddata + "' size=25 style='background-color:white'><p hidden>" + olddata + "</p>"); 

p要素は表示されませんが、データテーブルには表示され、並べ替えに使用して行の位置が変わらないようにします。このソリューションは、まだソートを無効にするよりも優れていました。テーブルをソートすることができるので、

関連する問題