2010-12-07 3 views
0

私たちは私たちが独自に行った組み込みのページングを使用するのではなく、多くのYUIデータテーブルを使用してサーバー上でページを設定できますデータセット全体をダウンロードせずにAJAXを使用してください(これはしばしば巨大です)。YUI Datatable - 任意の関数を呼び出す* once *ソート時

データテーブルの並べ替え機能を使用するたびに、YUIの観点からはデータセット全体であるため、1ページだけがソートされます。

ユーザーがデータをソートしようとするたびに、ページデータをリロードするために任意の関数を呼び出す必要があります。私はDataTableのsortFunctionパラメータを調べました。複数回呼び出されるため(必要な行の組み合わせごとに1回)、一度だけ実行する必要があるため、理想的ではありません。

おそらく私はこれを行うことができますハックな方法がたくさんありますが、これについて行くの "最も良い"方法は何ですか?

答えて

0

理想的には、サーバー側でソートします。

generateRequestを埋めるためにどので設定正しいデータを返すURLを生成する関数であることを意味する:データテーブルを作成する際に、設定オプションの一つはgenerateRequest

ある(http://developer.yahoo.com/yui/examples/datatable/dt_bhm.htmlこの例を参照されたいです)表。あなたはおそらくこれを持っています。

私にとっては、(並べ替えるために)列ヘッダーをクリックするたびに、ソートされたデータの正しいページを取得し、サーバーに新しい要求を行います。

0

カスタム関数を記述し、それが呼び出されたかどうかを追跡する変数をクローズしてみませんか?

var hasBeenCalled = false; 
function mySortFunction(){ 
    if(!hasBeenCalled){ 
     // do something 
     hasBeenCalled = true; 
    } 
} 

次に、sortFunctionをそれに置き換えます。