0

サーバー側でdataTableの並べ替え(順序付け)を実装しています。すべてのsessmsは問題ありません私のデータでさえ適切にソートされます(firebugで確認できます)。問題は、その後datatableがリロードされず、「処理中...」が引き続き表示されることです。リロード用の関数をどこに書くかについての手がかり。私はそれがによって行うことができることを知っています

 oTable.fnDraw(true);

しかし、ヘッダーがソートのためにクリックされた後、どこにそれを書くべきかわかりません。デバッグするコードスニペットが必要な場合はお知らせください。

編集1**

グローバル検索を使用したり、noを変更したりしても、テーブルをリロードできません。表示する行の数。なぜこれが起こっているのか考えてみてください???

var oTable = $('#datatable').dataTable( {
                "bProcessing": true,
                "bServerSide": true,
                "sAjaxSource": "datatableprocessor",
                "sPaginationType": "full_numbers",
                 "fnRowCallback": function (nRow, aData, iDisplayIndex) { return nRow; },
                "fnServerData": function ( sSource, aoData, rfrshCallbk ) {
                    $('.search').each(function(index) {
                        var name =  $(this).attr("name");
                        var tempName = name.replace("search","condition" );
                        var condition = $("[name='"+tempName+"']").val();
                        var value = $(this).val();
                        aoData.push({ "name": name, "value": value+""+condition });
                    });
                    aoData.push({ "name": "queryId", "value": "test" });
                    $.ajax( {
                            "dataType": 'json',
                            "type": "POST",
                            "url": sSource,
                            "data": aoData,
                            "success": rfrshCallbk

                    } );
                },
                "aoColumnDefs": [
                  { "sName": "c.id", "aTargets": [ 0 ] },
                  { "sName": "c.firstname", "aTargets": [ 1 ] },
                  { "sName": "c.lastname", "aTargets": [ 2 ] },
                  { "sName": "c.telephone", "aTargets": [ 3 ] }

                ]


            } );//

編集2-----Jsonの着信が正しいかどうかを確認しようとしたので、デバッグするためにコードを次のように変更しました

 "success": function(json){
        alert(JSON.stringify(json));
                    rfrshCallbk(json);
 }

どちらの場合も、ページをリロードするとき、またはjson文字列の並べ替えを行うときは同じです.. ?? !! ?? 何が悪いのかわからない??!!??

4

2 に答える 2

0

私は解決策を手に入れました。「sEcho」を実装しておらず、毎回「sEcho」を「1」として返送していたため、リストが更新されませんでした。

于 2012-09-23T12:17:41.367 に答える
0

使用するdataTableデータをリロードする

oTable.fnDraw();

oTable.fnDraw(true);ではありません。、クリックイベントを実行している場所に書き込みます。

于 2012-09-21T12:16:00.813 に答える