SAPUI5搜索字段实时搜索不会过滤

时间:2015-02-23 05:56:38

标签: list search live sapui5

我在XML视图中使用搜索字段。

<Page title="Title">
  <subHeader>
      <Toolbar>
        <SearchField
          liveChange="onSearch"
          width="100%" />
      </Toolbar>
    </subHeader>
  <content>
  <List id = "oProductList" items="{/formset}" select="whencliekedonlist" mode="SingleSelectMaster">
  <items>
  <StandardListItem title="{orderno}"
  description="{date}">



  </StandardListItem>
  </items>
  </List>
  </content>

  </Page>

在视图的Init方法中,我声明了odata模型

onInit: function() {
  //Declaring the model
  var oProductModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/SOL/TEST_SRV");
sap.ui.getCore().setModel(oProductModel);
  debugger;
  },

我在屏幕拆分应用母版页中列出了没有订单。

现在在livesearch上我正在调用这个设置文件管理器的方法

>   debugger;
>     // add filter for search
>     var aFilters = [];
>     var sQuery = oEvt.getSource().getValue();
>     if (sQuery && sQuery.length > 0) {
>       //here name is the field on which the filter has to be done.
>       var filter = new sap.ui.model.Filter("orderno", sap.ui.model.FilterOperator.Contains, sQuery);
>       aFilters.push(filter);
>     }
>  
>  
>      
>     // update list binding
>   
>     var list = this.getView().byId("oProductList");
>     var binding = list.getBinding("items");
>     binding.filter(aFilters);

问题:我没有得到过滤结果。当我过滤时没有任何反应。  我正在使用odata模型是因为它吗?如果是这样的话,你可以指点我的代码

2 个答案:

答案 0 :(得分:0)

应用$ filter选项对您的服务执行Odata请求。很可能您会发现您的服务根本没有过滤。

您可以通过ABAP代码或在Gateway中配置UI2 Odata缓存来添加过滤。

答案 1 :(得分:0)

我使用了以下语句,利用了搜索字段的&#34; search&#34; -event:

             <SearchField 
             search="handleSearch" 
             width="100%" > 
             </SearchField>

with handlesearch beeing my search handler 我在某处读过liveChange事件默认设置为false / inactive ...我认为有一个函数可以检查它...