ListBinding的过滤器没有'工作正常

时间:2016-09-28 13:52:23

标签: javascript sapui5

在我的SAPUI5-App中,我有一个GeoMap(sap.ui.vbm.GeoMap),其中显示了一些Spots(sap.ui.vbm.Spots)。每个Spot都有一个分配的季度(例如2012-Q3,2012-Q4,...)。在这个GeoMap之上,我有一个RangeSlider(sap.ui.commons.RangeSlider),我可以选择一系列的季度(例如从2012年到第四季度到2014年到第三季度)。根据RangeSlider中的选定区域,只应在GeoMap上显示关联的Spots。 Image of my Application

到目前为止我已经实现了这一点,如果我缩小RangeSlider中的范围,GeoMap上将显示正确的Spots。

但是这是我的问题,如果我在RangeSlider中扩展范围,并不是所有相关的Spots都会显示在GeoMap上。有些景点不见了。 Image: Not all Spots will be shown

我的阅读是,我的过滤器一定有问题。

这是我对RangeSlider的事件处理程序的代码:

onRangeChanged: function(oEvent){
        var oValue1 = oEvent.getSource().getValue();
        var oValue2 = oEvent.getSource().getValue2();
        var aFilter = [];
        for (var i = oValue1; i <= oValue2; i++) {
            var sQuarter = oEvent.getSource().mProperties.labels[i];
            aFilter.push(new Filter("EVENT_QUARTAL", FilterOperator.Contains, sQuarter));
        }
        var combinedFilter = new sap.ui.model.Filter(aFilter, false);
        var oSpots = this.getView().byId("SpotsEvent");
        var oListBinding = oSpots.getBinding("items");
        oListBinding.filter(combinedFilter);
    },

这是我的View with the Spots和RangeSlider的代码片段:

...
<commons:RangeSlider 
            id="RangeSlider"
            min="0"
            max="15"
            stepLabels="true"
            smallStepWidth="1"
            width="1070px" 
            value="0"
            value2="15"
            change="onRangeChanged"
            class="sapUiSmallMarginBegin">
</commons:RangeSlider>
...
<vbm:Spots
        id="SpotsEvent"
        items="{/Events/0}">
            <vbm:items>
                <vbm:Spot
                    id="spotEvent"
                    click="onClickSpot"
                    position="{path: 'EVENT_GEOKOORDINATEN',
                               formatter: '.Formatter.formatPosition'}"
                    type="Error"
                    text="{BRANDSCORE}">
                </vbm:Spot>
            </vbm:items>
        </vbm:Spots>

我希望有人可以帮助我。

0 个答案:

没有答案