2

サーバー側の処理を有効にして作成された次のデータテーブルがあります。

$(document).ready(function() {
    oTable = $('#example').dataTable( {
        "bServerSide": True,
        "sAjaxSource": "source.php",
        "aaSorting": [[0,"asc"]],
        "aoColumns": [
            { "mDataProp" : "Name",
               "sType": "string-case" },
            { "mDataProp" : "Priority",
               "sType": "string-case" },
            { "mDataProp" : "Action",
               "sType": "string-case" }
        ]
    } );
} );

名前、優先度、およびアクションはすべて、並べ替えたい文字列です。列ヘッダーをクリックするたびに、テーブルをリロードするだけです。おそらくばかげた質問ですが、(iSortCol_0 と sSortDir_0 を識別子として使用して) サーバー側ですべての並べ替えを行う必要がありますか? このようにテーブルを更新せずにクライアント側でソートし、実際に名前に基づいてソートすることは可能ですか?

4

2 に答える 2

5

DataTables を使用bServerSide: trueすると、現在のページに収まるデータのみが要求されます。次のページに進むと、たとえば、次の 10 レコードを要求されます。DataTables はデータセット全体を認識していないため、クライアントで並べ替えることはできません。

単純に ajax ソースからデータ セット全体を取得する場合は、このsAjaxSourceオプションを使用できます。

$(document).ready(function() {
    $('#example').dataTable( {
        "bProcessing": true,
        "sAjaxSource": '../ajax/sources/arrays.txt'
    } );
} );

例: http://datatables.net/release-datatables/examples/data_sources/ajax.html

于 2012-08-23T16:34:22.097 に答える
3

残念ながら、サーバー側ですべての並べ替え、ページング、フィルタリングを自分で処理する必要があります。

使用しているサーバー側のテクノロジーはわかりませんが、datatablesのホームページにPHPの例がいくつかあります。また、ASP.NETMVCでサーバー側でデータテーブルを使用するためのラッパーがいくつかあります

于 2012-08-23T16:29:56.417 に答える