SAPUI5 list/combobox 数据绑定替换为 table
SAPUI5 list/combobox data binding replacing with a table
我必须用 table 替换列表(组合框)中的数据绑定。重要的是我们添加过滤器以在组合框中具有正确的数据绑定。 o输入被定义为组合框:
oInput.setModel(oView.getModel());
oInput.bindAggregation("items", "/shrhelpSet", oTemplete);
oFilterObject = new sap.ui.model.Filter("object", "EQ", that.g_object);
oFilterField = new sap.ui.model.Filter("field", "EQ",
that.g_TechNameArr[i]);
oFilterLang = new Filter("lang", "EQ", sCurrentLocale);
oFilters = new sap.ui.model.Filter([oFilterObject, oFilterField, oFilterLang], true);
oInput.getBinding("items").filter(oFilters);
我的问题是如何将它替换为具有 table 的绑定。我在 ValueHelpDialog 中使用 sap.ui.table。我有在数组中定义的固定列数据,现在我需要将列表绑定中的数据添加到数组以进行行绑定。我定义了一个数组 "aData",我必须在其中放置带有过滤器的数据集 /shrhelpSet 的数据。我用
试过了
//var aData = this.getModel().getData("/shrhelpSet").filter(oFilters);
但这是错误的做法。
// array with fix column names
var aColumnData = [{
columnId: "Key"
}, {
columnId: "Value"
}];
//var aData = this.getModel().getData("/shrhelpSet").filter(oFilters);
var oModel2 = new sap.ui.model.json.JSONModel();
oModel2.setData({
columns: aColumnData,
rows: aData
});
oTable.setModel(oModel2);
oTable.bindColumns("/columns", function(index, context) {
var sColumnId = context.getObject().columnId;
//alert(sColumnId);
return new sap.ui.table.Column({
id : sColumnId,
label: sColumnId,
template: sColumnId
});
});
oTable.bindRows("/rows");
尝试将过滤器添加到行聚合的绑定中,就像您之前对输入的项目聚合所做的那样。
oTable.getBinding("rows").filter(oFilters);
这必须在代码段的最后一行之后完成(行绑定之后)。
我必须用 table 替换列表(组合框)中的数据绑定。重要的是我们添加过滤器以在组合框中具有正确的数据绑定。 o输入被定义为组合框:
oInput.setModel(oView.getModel());
oInput.bindAggregation("items", "/shrhelpSet", oTemplete);
oFilterObject = new sap.ui.model.Filter("object", "EQ", that.g_object);
oFilterField = new sap.ui.model.Filter("field", "EQ",
that.g_TechNameArr[i]);
oFilterLang = new Filter("lang", "EQ", sCurrentLocale);
oFilters = new sap.ui.model.Filter([oFilterObject, oFilterField, oFilterLang], true);
oInput.getBinding("items").filter(oFilters);
我的问题是如何将它替换为具有 table 的绑定。我在 ValueHelpDialog 中使用 sap.ui.table。我有在数组中定义的固定列数据,现在我需要将列表绑定中的数据添加到数组以进行行绑定。我定义了一个数组 "aData",我必须在其中放置带有过滤器的数据集 /shrhelpSet 的数据。我用
试过了 //var aData = this.getModel().getData("/shrhelpSet").filter(oFilters);
但这是错误的做法。
// array with fix column names
var aColumnData = [{
columnId: "Key"
}, {
columnId: "Value"
}];
//var aData = this.getModel().getData("/shrhelpSet").filter(oFilters);
var oModel2 = new sap.ui.model.json.JSONModel();
oModel2.setData({
columns: aColumnData,
rows: aData
});
oTable.setModel(oModel2);
oTable.bindColumns("/columns", function(index, context) {
var sColumnId = context.getObject().columnId;
//alert(sColumnId);
return new sap.ui.table.Column({
id : sColumnId,
label: sColumnId,
template: sColumnId
});
});
oTable.bindRows("/rows");
尝试将过滤器添加到行聚合的绑定中,就像您之前对输入的项目聚合所做的那样。
oTable.getBinding("rows").filter(oFilters);
这必须在代码段的最后一行之后完成(行绑定之后)。