私はあなたの複数の要求は、列のデータを集約している想定しています。私はまた、テーブルが静的(サーバー側のページングまたはソートではない)であると仮定しています。
- すべてのソースのすべての列を含むようにDataTableの列定義を設定します。
- 最速のクエリのサービスURLを示すDataSourceを作成します。
- DataTableをそのDataSourceでインスタンス化します。
- いずれの他のサービスのためのより多くのデータソースを作成する、またはこれらのサービスリクエストごとに、コールバックがこれらの線に沿って何かを行う必要があります
- お互いのサービスのためにYAHOO.util.Connect.asyncRequest(...)を呼び出す:
(前方擬似コード)
function callback(data) {
var recordset = myDataTable.getRecordSet(),
records = recordset.getRecords(),
i, len, rec;
for (i = 0, len = records.length; i < len; ++i) {
rec = records[i].getData(); // will return an object literal with data info
/* match the record object to the new data and update the record object */
}
recordset.setRecords(records);
myDataTable.render();
}
したがって、各付加的なサービスは、全表UIが更新され、レコード・レベルでデータを追加します。
HTH
ルークは、私はあなたがrecordset.setRecords(レコード)を行う必要がないと思うねえ、私はあなたが参照を変更していると信じていないので、私はmyDataTable.render(やった)それだけでレンダリング新しいデータ。実際に、私はsetRecordのことをしたとき、何らかの理由で実際にすべてのデータを(視覚的に)消去しました... – FurtiveFelon
いいですよね。 setRecordsは必要ありません。それがなぜそれを拭き取ったのかはっきりしない(明らかに、ヒップ・コーディングからの貧弱な)が、とにかくそれは疑問だ。 – Luke