2017-01-17 6 views
-1

아래 코드를 사용하는 필터가 작동하지 않습니다. 웹 IDE에서 템플릿을 사용하여 응용 프로그램을 만든 다음 OData를 XMLView의 목록에 바인딩하고 검색시 필터를 적용했습니다.UI5의 데이터 필터링

보기 :

<SearchField liveChange="onSearch" id="master1SearchField" search="onSearch"/> 
<List id="master1List" items="{path:'/DetailsSet'}"> 
    <items> 
     <ObjectListItem id="master1ListItem"> 
      <attributes> 
       <ObjectAttribute text="{Name}"/>        
      </attributes> 
     </ObjectListItem> 
    </items> 
</List> 

컨트롤러 : 필터 설정 한 후 컨트롤의 업데이트를 강제로

onSearch : function(oEvent) { 
    var sFilteredValue = oEvent.getSource().getValue(); 
    var oFilter = new sap.ui.model.Filter("Name", sap.ui.model.FilterOperator.Contains, sFilteredValue); 
    var oElement = this.getView().byId("table"); 
    var oBinding = oElement.getBinding("items"); 
    oBinding.filter([oFilter]);    
} 
+0

디버그 모드로 전환하면 네트워크 탭에서 백엔드에 대한 필터 요청 및 응답을 볼 수 있습니다. 그게 효과가 있습니까? 그것은 어떻게 생겼어? 당신은 디버거에있는 경우 , 여기에 "sFilteredValue"의 값 것입니다 :; https : //로 ". var에 sFilteredValue = oEvent.getSource() getValue()가" 가있는 샘플 코드로도 비교하세요 sapui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.ListSelectionSearch/code/List.controller.js –

+0

올바른 컨트롤에 필터를 적용하고 있습니까? 'oElement'의 ID는''table "'이고 ID는''master1List"''ID입니다. – boghyon

+0

여기에 반환되는 것은 무엇입니까? 'var sFilteredValue = oEvent.getSource(). getValue();' – neeko

답변

-1

시도 :

oBinding.refresh(true); 
+0

질문에 대한 답변을 제공하지 않습니다. [평판] (http://stackoverflow.com/help/whats-reputation)이 충분하면 [모든 게시물에 댓글을 달 수 있습니다] (http : // 대신 [Asker의 설명이 필요없는 답변 제공] (http://meta.stackexchange.com/questions/214173/why-do-i-eed-50) - 평가에서 코멘트 - 할 수있는 일 - 대신에) - [리뷰에서] (/ 리뷰/저품질 - 게시물/15605204) – Robert

1

당신이 필요로하는이 항목의 결합하세요 필터를 적용 할 필요가 있습니다.

var oElement = this.getView().byId("master1List"); 

으로 해결해야합니다.