gpt4 book ai didi

odata - 带有过滤器的 SAPUI5 自动绑定(bind)智能表

转载 作者:行者123 更新时间:2023-12-02 00:34:21 26 4
gpt4 key购买 nike

我有一个智能表,它绑定(bind)到启用了自动绑定(bind)的 oData 服务。目前,它返回实体集的所有数据。

我需要的是在从 oData 服务加载数据时过滤数据。我试过在 Controller 中添加过滤器,但它不起作用。

查看

<smartTable:SmartTable id=mytable" entitySet="SampleDetail"  tableType="ResponsiveTable"
useExportToExcel="false" beforeExport="onBeforeExport" useVariantManagement="false" useTablePersonalisation="true"
header="{i18n>tickets_table_header}" showRowCount="true" persistencyKey="ticketsSmartTable_persis" enableAutoBinding="true"
demandPopin="true" class="sapUiResponsiveContentPadding">
</smartTable:SmartTable>

和 Controller js

var serviceURL = this.getConfiguration("myDestination");
serviceURL = serviceURL + "sample.xsodata";
var oModel, oView, that = this;
var filtersDef = [];
filtersDef.push(new Filter("STATUS", sap.ui.model.FilterOperator.NE, "D"));

oView = this.getView();
oModel = new sap.ui.model.odata.v2.ODataModel(serviceURL, {
useBatch: false
});


oModel.read("/SampleDetail", {
async: true,
success: function(e) {
that.setModel(oModel);

},
error: function(e) {
oModel.setData({

});
},
filters: filtersDef
});

最佳答案

可以使用智能表的beforeRebindTable事件

                <smartTable:SmartTable 
...
beforeRebindTable="onBeforeRebindTable"
...
</smartTable:SmartTable>

以及您更改过滤器的方法。

onBeforeRebindTable: function(oSource){
var binding = oSource.getParameter("bindingParams");
var oFilter = new sap.ui.model.Filter("STATUS", sap.ui.model.FilterOperator.NE, "D");
binding.filters.push(oFilter);
}

关于odata - 带有过滤器的 SAPUI5 自动绑定(bind)智能表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50390460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com