サイズ制限を設定することは、増加する機能には関係なく、リストバインディングで使用されるエントリの最大数に影響します。 1000個のエントリを格納しており、サイズの制限は500です。これらのエントリにバインドされたリストコントロールは500だけ表示されます。
JSONModelは多かれ少なかれダムのデータストアであり、知識のない拡張機能をサポートしていませんデータの全体的なカウントを取得する方法について説明します。これを実現するには、独自のリストバインディングを実装して、特定のケースのデータ数を計算する必要があります。また、このリストバインディングを使用するカスタムモデルが必要です。
JSONModel
sap.ui.define([
"sap/ui/model/json/JSONModel",
"xxx/ListBinding"
], function(JSONModel, ListBinding) {
"use strict";
return JSONModel.extend("xxx.JSONModel", {
bindList : function(path, context, sorters, filters, parameters) {
return new ListBinding(this, path, context, sorters, filters, parameters);
};
});
});
ListBindingご入力のための
sap.ui.define([
"sap/ui/model/json/ListBinding"
], function(ListBinding) {
"use strict";
return ListBinding.extend("xxx.ListBinding", {
// in this case the array holding the data has a count property which stores the total number of entries
getLength : function() {
var path = !this.sPath ? "count" : this.sPath + "/count";
var count = this.oModel.getProperty(path, this.oContext);
return (count) ? count : ListBinding.prototype.getLength.call(this);
}
});
});
ありがとう!しかし、私は何とか次のようにして私の問題を解決します: – dduozz
私はoTable.bindAggregation( ""、 "dfcr> /"、oTemplate)を変更しました。 to oTable.bindAggregation( "items"、 "dfcr> /"、oTemplate); – dduozz
実行例を示してください。 – matbtt