XMLView 绑定中的动态过滤器
Dynamic Filter in XMLView Binding
在我的应用程序中,我有一个 Microchart,它直接绑定到 XML 视图中的 OData-Entityset。
我现在想将过滤器传递给该请求。但是这个过滤器应该根据用户选择的设置是动态的。
用户选择一个时间范围,然后将此值存储在另一个视图本地 JSON 模型中。
是否可以基于该值构建 OData 绑定过滤器。
这里绑定的过滤器不起作用。
我尝试了各种组合:
- {filterModel>/status}
- {路径:'filterModel>/status'}
<microchart:InteractiveDonutChart id="microDonutChart"
segments="{path: '/BookingStOverviewSet',
filters : [
{ path : 'Txt04',
operator : 'GE',
value1 : {filterModel>/status}
}
]
}">
<microchart:segments>
<microchart:InteractiveDonutChartSegment label="{Txt30}" value="{Count}"/>
</microchart:segments>
</microchart:InteractiveDonutChart>
控制器中使用过滤器值构建 JSON 模型的逻辑:
onInit: function () {
var filterModel = new sap.ui.model.json.JSONModel(
{
"startOfCal": new Date(),
"endOfCal": new Date(),
"status": '0001'
});
this.getView().setModel(filterModel, 'filterModel');
}
遗憾的是,SAPUI5 不支持通过 XML 进行动态过滤,您需要在应用程序的 JS 部分解决这个问题。
解决方法可以这样开发:
var filters = [];
var myFilter= new sap.ui.model.Filter("Txt04", sap.ui.model.FilterOperator.EQ, filterModel.getProperty("/status"));
filters.push(myFilter);
var microChart = this.getView().byId("microDonutChart")
microChart.bindSegments({
path: "/BookingStOverviewSet",
filters: filters,
template: microChart.getBindingInfo("items").template
});
在我的应用程序中,我有一个 Microchart,它直接绑定到 XML 视图中的 OData-Entityset。
我现在想将过滤器传递给该请求。但是这个过滤器应该根据用户选择的设置是动态的。
用户选择一个时间范围,然后将此值存储在另一个视图本地 JSON 模型中。
是否可以基于该值构建 OData 绑定过滤器。
这里绑定的过滤器不起作用。
我尝试了各种组合:
- {filterModel>/status}
- {路径:'filterModel>/status'}
<microchart:InteractiveDonutChart id="microDonutChart"
segments="{path: '/BookingStOverviewSet',
filters : [
{ path : 'Txt04',
operator : 'GE',
value1 : {filterModel>/status}
}
]
}">
<microchart:segments>
<microchart:InteractiveDonutChartSegment label="{Txt30}" value="{Count}"/>
</microchart:segments>
</microchart:InteractiveDonutChart>
控制器中使用过滤器值构建 JSON 模型的逻辑:
onInit: function () {
var filterModel = new sap.ui.model.json.JSONModel(
{
"startOfCal": new Date(),
"endOfCal": new Date(),
"status": '0001'
});
this.getView().setModel(filterModel, 'filterModel');
}
遗憾的是,SAPUI5 不支持通过 XML 进行动态过滤,您需要在应用程序的 JS 部分解决这个问题。
解决方法可以这样开发:
var filters = [];
var myFilter= new sap.ui.model.Filter("Txt04", sap.ui.model.FilterOperator.EQ, filterModel.getProperty("/status"));
filters.push(myFilter);
var microChart = this.getView().byId("microDonutChart")
microChart.bindSegments({
path: "/BookingStOverviewSet",
filters: filters,
template: microChart.getBindingInfo("items").template
});