2016-06-27 4 views
0

내 목록을 TypeID으로 필터링하려고하지만 내 ID가 숫자 (int32)이고 "포함"필터가 숫자와 호환되지 않습니다.SAPUI5 필터가 문자열로만 작동합니다

onSearch : function (oEvt) { 
    var sQuery = oEvt.getSource().getValue(); 
    var list = this.getView().byId("myList"); 
    var binding = list.getBinding("items");   

    if (sQuery && sQuery.length > 0) { 
     binding.filter([ new sap.ui.model.Filter([ 
      new sap.ui.model.Filter("TypeID", sap.ui.model.FilterOperator.Contains, window.global.TypeID ) //Error: request failed due to invalid system query options value! 
     ],false)]); 
    } 
}, 

도움이 필요하십니까?

+0

당신의 필터를 작성하십시오! 또는'Number'를'String'으로 변환하십시오. – Rayon

+0

그러나 내 모델에서 값을 어떻게 캐스팅 할 수 있습니까? 바늘은 문자열이지만 건초 더미에는 숫자가 포함되어 있습니다. – alexP

+0

모델을 지정하기 전에'Array # map '할 수 있습니다 – Rayon

답변

0

OData 관점에서 볼 때 필터 연산 "포함"은 OData 연산 "하위 문자열"로 변환됩니다. 작업의 이름이 이미 암시 하듯이 문자열에서만 사용할 수 있습니다. 비 문자열에서 필터링하려면 FilterOperator.EQ를 대신 사용해야하지만 속성의 일부분을 필터링 할 수는 없습니다.

숫자 속성의 일부를 필터링해야하는 경우. 23에서 1234를 찾으려면 클라이언트 측 필터링을 적용하고 필터링을 수행하는 루틴을 작성해야합니다.

대신 사용하여 필터를 인스턴스화의 : 끌려 가고

new Filter("TypeID", fnTest); 

데이터의 에너지 잠재 성 양으로 이어질 수 클라이언트 쪽 필터링을주의 할 사항 :

new Filter("TypeID", FilterOperator.Contains, typeID); 

다음을 사용하여 필터를 인스턴스화해야합니다 백엔드에서. 그러므로주의해서 사용하십시오.

또는 백엔드 로직을 담당하는 사람들과 이야기를 나누어 검색 속성을 숫자 값 대신 문자열로 재정의 할 수 있는지 확인할 수도 있습니다.