Sapui5 在过滤器栏中使用DateRangeSelection并使用它为我的表过滤模型
这里的第一个问题是我在调用oFilterBar.getFilters()时得到“undefined不是函数”。过滤器条本身并不是未定义的,所以乍一看就可以了。我的视图包括Sapui5 在过滤器栏中使用DateRangeSelection并使用它为我的表过滤模型,sapui5,Sapui5,这里的第一个问题是我在调用oFilterBar.getFilters()时得到“undefined不是函数”。过滤器条本身并不是未定义的,所以乍一看就可以了。我的视图包括xmlns:fb=“sap.ui.comp.filterbar” 我很难将两者联系起来,并弄清楚如何使用选定的范围作为过滤器。表的“我的模型”有一个项目列表,每个项目都有一个名为“日期”的字段,可用于根据所选范围筛选项目。但该字段有自己的特定日期格式yyyymmdd 附带问题,为DateRangeSelection控件设置默认起
xmlns:fb=“sap.ui.comp.filterbar”
我很难将两者联系起来,并弄清楚如何使用选定的范围作为过滤器。表的“我的模型”有一个项目列表,每个项目都有一个名为“日期”的字段,可用于根据所选范围筛选项目。但该字段有自己的特定日期格式yyyymmdd
附带问题,为DateRangeSelection控件设置默认起始日期和截止日期的最佳方法是在控制器的init函数中
更新 艾伦回复后,我做了一些修改:
doReload : function(aFilters, oParameters) {
var oTable = this.byId("clockHistoryTable");
var oBinding = oTable.getBinding("items");
oBinding.filter(aFilters);
}
它运行时没有任何错误,但当我选择一个日期或范围时,它会过滤掉所有内容,并且表是空的。- 对于
,没有名为FilterBar
的方法,仅适用于getFilters
。您需要基于SmartFilterBar
构建自己的过滤器oEvent.getParameter(“selectionSet”)
- 您还应该设置日期范围选择的
displayFormat=“yyyy/MM/dd”
- 是的,您应该在
函数中设置onInit()
的默认起始日期和截止日期DateRangeSelection
onSearch : function(oEvt) {
var oFilterBar = oEvt.getSource(), aFilters = [], oParameters;
aFilters = oFilterBar.getFilters();
oParameters = oFilterBar.getParameters();
this.doReload(aFilters, oParameters);
}
doReload : function(aFilters, oParameters) {
var oTable = this.byId("clockHistoryTable");
var oBinding = oTable.getBinding("items");
oBinding.filter(aFilters);
}
doReload : function(aFilters) {
var oTable = this.byId("clockHistoryTable");
var oBinding = oTable.getBinding("items");
oBinding.filter(aFilters);
},
onReset : function(oEvent) {
this.doReload();
},
onSearch : function(oEvt) {
var oFilterBar = oEvt.getSource(), aFilters = [];
aFilters = oEvt.getParameter("selectionSet");
this.doReload(aFilters);
},