6

私はこれをテストしましたが、質問した理由は、テーブルごとに異なることをしているように見えるからです。

これが構成可能かどうかに関するドキュメントは見つかりませんでした。行が一番下に追加されると思っていたでしょうが、いくつかの例では、行が一番上または真ん中に追加されることもあります。それはかなりランダムに思えます。

何か案は?

4

3 に答える 3

12

ソース コードを調べたところ、fnAddData は内部メソッド _fnAddData を呼び出します。このメソッドは 1 行を追加し、成功した場合はそのインデックスをテーブルに返します。_fnAddData は、新しい行を一番下に追加します (新しい行のインデックスはテーブル内の行数と同じです)。

ただし、fnAddData には、有効になっているさまざまな機能を考慮してテーブルを再描画するオプションのパラメーターがあります。このパラメーターのデフォルトは true であり、これがおそらく「ランダムな」動作の原因です。

于 2009-12-21T09:07:06.933 に答える
5

kgiannakakiが説明したように、Datatableのソースを閲覧します。このメソッドは、必要に応じて、すべての新しいデータ行をテーブルの最後に追加します。

「ランダム」な動作の理由は、新しい行が追加されるたびに、特に指定されていない限り、メソッドがテーブル全体の「再描画」を実行するためです。これを行うと、テーブルはフィルタリング/ソートなどの複数の機能を実行され、ページに完全に書き換えられます。基本的に、新しい行が追加されるたびに「ランダム」効果を生み出す可能性のある新しい行にランダムなデータを追加していると推測します。

falseに設定する必要があるfnAddData呼び出しに2番目のパラメーターを追加することにより、テーブルの再描画を簡単に無効にできます。

$(this).fnAddData(data, false);

この問題が引き続き発生する場合は、この動作の他の理由がないため、この問題のバグを報告します。

于 2009-12-23T20:50:32.110 に答える
4

並べ替えを無効にして、新しい行がテーブルの一番下に追加されるようにするには、次を追加します。

"bSort": false

DataTable の初期化 (の先頭) に。

于 2014-03-21T19:51:17.880 に答える