5

バグかどうかはわかりませんが、次のオプションを持つデータテーブル + ajax があります。

     "bServerSide": true,
     "sAjaxSource": url,
     "fnServerData": function (sSource, aoData, fnCallback) {
        jQuery.ajax({
           "dataType": 'json',
           "type": "POST",
           "url": sSource,
           "data": aoData,
           "success": fnCallback
        });
     },
     "sPaginationType": "bootstrap",
     "aoColumns": [
                    { "sName": "Id", "sType": 'numeric', "bVisible": false },
                    { "sName": "PostingDate", "sType": 'Date' },
                    { "sName": "Userid", "sType": 'string', "bVisible": false },
                    { "sName": "DisplayName" },
                    { "sName": "Description" },
                    { "sName": "MainTag" },
                    { "sName": "Tags" },
                    { "sName": "HowMuch" }
                ]

ユーザーが行を追加できるフォームがあり、それを送信すると、ajax 呼び出しでデータベースにデータを追加してから、次のように呼び出します。

ユーザーがクリックして列「MainTag」でテーブルを並べ替えると、サーバー側の ajax が受け取ります。

iSortCol_0 4
iSortingCols 1

そして、すべての bSortable_# が正しく 0 から 7 まであります (上記のように 8 つの列があります。

サーバー上でどの列が非表示になっているかを知る手段がない場合、iSortCol_0=4 の並べ替えを間違った列で誤って解釈します。

回避策を実装して、どの列が表示または非表示になっているかの情報を外部のデータテーブルに送信することはできますが、何か間違ったことをしている、またはドキュメントで問題の答えを見つけられなかったと感じています。

4

1 に答える 1

4

それを自動的に知る方法はないと思います。 (このfnServerParams()例で詳しく説明されているように) サーバーに追加のパラメーターを送信して、どの列が非表示であるかをサーバーに通知します。

    "fnServerParams": function ( aoData ) {
        aoData.push( { "name": "more_data", "value": "my_value" } );
    }
于 2012-02-27T15:15:26.910 に答える