4

tablesorterのページャープラグインを使用してサーバー側のページ付けは可能ですか?デフォルトのオプションでは、すべての行をブラウザのメモリに一度にロードする必要があるようです。私は非常に多くのレコードを持っているので、これは実際には不可能なので、一度に1ページずつロードすることをお勧めします。tablesorterページャープラグインはこれをサポートしていますか?もしそうなら、ドキュメントがこの例を示しているので、私は何が欠けていますか?

// process ajax so that the data object is returned along with the total number of rows
    // example: { "data" : [{ "ID": 1, "Name": "Foo", "Last": "Bar" }], "total_rows" : 100 }
    ajaxProcessing: function(ajax){
      if (ajax && ajax.hasOwnProperty('data')) {
        // return [ "data", "total_rows" ];
        return [ ajax.data, ajax.total_rows ];
      }
    },

それと私が見つけた他の例は、ajax処理関数のメモリにすべての行を一度にロードするように見えます。

http://mottie.github.com/tablesorter/docs/example-pager.html

アップデート:

http://mottie.github.com/tablesorter/docs/example-pager-ajax.htmlでAJAXページャーを見た後、まだいくつか質問があります。

  1. sortList = [[2,0]、[3,0]]。Ajax URLで、&col [2] = 0&col [3] = 0の実際の形式に自分で変換しますか?
  2. ajaxProcessingのドキュメントには次のように書かれています。

    次の情報が返されるようにajaxを処理します。//[total_rows(数値)、rows(配列の配列)、headers(配列;オプション)]

total_rowsはデータベース内の行数であり、ブラウザメモリ内またはテーブルに表示されている行数ではないようです。あれは正しいですか?次の質問:配列の「行」配列の形式を理解しています。しかし、実際にはどの行が含まれているのでしょうか。ドキュメントには「すべての行」と記載されていますが、テーブルに表示されているのは現在の行のページだけですか?ユーザーがこれまでにページをめくったのはすべての行ですか?ポイントを完全に台無しにするので、DBにあるのはすべての行ではないと思います。

4

1 に答える 1

2

並べ替えの列と方向を含めるにはcol、URLテンプレート内の例にサーバー側の変数を含めるだけです。

ajaxUrl : "http:/mydatabase.com?page={page}&size={size}&{sortList:col}&{filterList:fcol}",

{page}ユーザーが表示している現在のページ{size}であり、ブラウザに表示する行数です。

並べ替えを含めるには、 &{sortList:col}col並べ替えの列と方向のサーバー側変数を一致させて)含めます。そして、&{filterLost:fcol}fcol列をフィルタリングするためのサーバー側の変数と一致するように)すべてのフィルタリングを含めるように含めます。ポケットベルプラグインは、文字列を&col[2]=0&col[3]=0(または何でも)フォーマットします。

関数を見ると、現在の行のセット(すべてのajaxProcessing行ではない)のサーバーからのajaxデータを再フォーマットして、この必要なフォーマットに一致させるだけです。

// process ajax so that the following information is returned:
// [ total_rows (number), rows (array of arrays), headers (array; optional) ]
// example:
[
  100,  // total rows
  [
    [ "row1cell1", "row1cell2", ... "row1cellN" ],
    [ "row2cell1", "row2cell2", ... "row2cellN" ],
    ...
    [ "rowNcell1", "rowNcell2", ... "rowNcellN" ]
  ],
  [ "header1", "header2", ... "headerN" ] // optional
]

データベースに行数が不確定な場合は、「0...」を返すだけです。それでも機能するはずtotalPagesですが、変数とtotalRows変数は不正確になります。

于 2013-03-08T21:37:57.557 に答える