2011-07-12 16 views
6

私はpipeliningでDataTablesを使用しています。私は "edit"リンクを保持するために余分な列を入力しようとしたときを除いて素晴らしい。 thisテーブルを参照してください。ここで DataTables、Ajaxパイプライン

は列を示すserver_processing.phpの抜粋です:

/* Array of database columns which should be read and sent back to DataTables. 
    * Use a space where you want to insert a 
    * non-database field (for example a counter or static image) 
    */ 
    $aColumns = array('user','email',); 

そして、ここで、クライアント側である:

$(document).ready(function(){ 
     $('#example').dataTable({ 
      "bProcessing": true, 
      "bServerSide": true, 
      "sAjaxSource": "scripts/server_processing.php", 
      "fnServerData": fnDataTablesPipeline, 
      aoColumns: [null, null, {"bSortable": false}] 
    }).makeEditable({ 
     sUpdateURL: "UpdateData.php", 
     sAddURL: "AddData.php", 
     sAddHttpMethod: "POST", 
     sDeleteURL: "DeleteData.php", 
     sDeleteHttpMethod: "POST", 
     aoColumns: [ { } , { } , null ] 
    }); 
    }); 

それでは、なぜこの作業ではないですか?

+1

のDataTableとの私の経験では、パイプラインを使用しますが、「仮想列を追加する場合は含まれません" - 編集列、チェックボックス、計算行のように、一般的には' aoColumns'配列にプレースホルダを追加する必要があります。そこで、aoColumns:[null、null、null、{"bSortable"}にaoColumns:[null、null、{"bSortable":false} "aoColumns:[null、null、{" bSortable ":false} ":false}]' – artlung

+2

また、dataTables(Alan Jardineと私は思う?)を書いた人は、質問があれば助けてくれることが大変です。彼は非常にheplfulであり、明らかに誰も作成者よりプラグインをよく知っていない! – martincarlin87

答えて

3

このまったく同じことを自分で行っただけです。私はすべての私の列をaoColumnDefsを使って構成するのが好きです。なぜなら、一度に複数の列の構成オプションを追加できるからです。

// Disable sorting on the 3rd column 
'aoColumnDefs': [{'aTargets': [2], 'bSortable': false}] 

aTargetsは、あなたがそれらの設定を適用したい列のインデックスの配列であることに注意してください。リンク列(削除リンクなど)をさらに追加する場合は、毎回列定義を書き換えずに並べ替えを無効にすることができます。

// Disable sorting on the 3rd and 4th column 
'aoColumnDefs': [{'aTargets': [2,3], 'bSortable': false}] 

そして、私はあなたがこの同じ配列内の列のために、さらに設定オプションを追加することができ、言っていたとして:

// Disable sorting on the 3rd and 4th column and sort 1st column by string 
'aoColumnDefs': [ 
    {'aTargets': [2,3], 'bSortable': false} 
    {'aTargets': [0], 'sType': 'string'} 
]