2016-05-06 2 views
0

самое время, когда я использовал TextField и изображение, чтобы реализовать поиск в моем приложении. Но теперь я нашел SearchField в SAPUI5. Моя проблема в том, что когда я выполнил поиск, значение insidfe будет очищено. Есть ли способ не делать этого? Я изучил API, но я не могу найти такой метод. Или мне нужно закодировать его самостоятельно?SAPUI5 SearchField

+0

См мой ответ - я понял ваш вопрос правильно? – Bernard

+0

Да, вы правильно поняли это, но может быть, что я сделал что-то не так в своем коде. Потому что, когда щелкнут MenuItem, поле поиска должно очиститься. Возможно, есть что-то worng .... – Chris

+0

Вы хотите, чтобы поле поиска очистилось? – Bernard

ответ

0

Я не уверен, почему текст очищается.

По вашему мнению, вы должны иметь что-то вроде этого:

<SearchField search="handleSearchPressed" /> 

И ваш контроллер должен/может выглядеть следующим образом:

handleSearchPressed: function (oEvent) { 
    var sQuery = oEvent.getParameter("query"); 
    if (sQuery === "") { 
     return; 
    } 
    // perform a search 
} 

Ничто не должно очистить свой SearchField.
См. Также Search Field Samples.

+0

Хорошо, я дважды просматриваю свой код ... Может быть, что-то не так с кодом для моего текстового поля и знаю, что мое поисковое поле каждый раз очищается. Спасибо за ваш ответ, я скоро отвечу :) – Chris

+0

Не могли бы вы показать мне свой код контроллера и код вида? – Bernard

+0

Я добавил его ниже :) – Chris

0
Try this code <SearchField liveChange="onSearching" width="100%" /> 
In Controller 
onSearching:function(oEvt) 
     { 
      var filters = []; 
      var sQuery = oEvt.getSource().getValue(); 
      if (sQuery && sQuery.length > 0){ 
       var filter = new sap.ui.model.Filter 
        ("Uname", sap.ui.model.FilterOperator.StartsWith, sQuery); 
       filters.push(filter); 
      } 
      var list = this.getView().byId("idList"); 
      var binding = list.getBinding("items"); 
      binding.filter(filters); 
     }, 
0

<SearchField id="searchfield" liveChange="liveSearch" placeholder="search"/> 
 
<List id="list" select=""onSelect/> 
 

 
liveSearch : function(oEvent) 
 
var olist = this.getView().byId("list); 
 
var sValue = oEvent.oSource.mProperties.value.toLowerCase(); 
 
var oItems = olist.getItems(); 
 

 
for(var i=0; i<oItems.length; i++){ 
 
    
 
    var value1 = olist.mAggregations.oItems[i].mProperties.title; 
 
    var value2 = olist.mAggregations.oItems[i].mProperties.description; 
 
    
 
     if(value1.indexOf(sValue)>-1||value2.indexOf(sValue)>-1){ 
 
     oItems[i].setVisible(true); 
 
     } 
 
    } 
 
}

этот код будет работать для элементов списка обязательных т.е. в "Master Details Шаблон"

+0

Использование должно всегда использовать методы get ex: getSource(), getProperties(), getValue и т. Д. – Pushpender

+0

см. Этот код https://sapui5.netweaver.ondemand.com/sdk/#/sample/ sap.m.sample.ListSelectionSearch/код/​​List.controller.js – Pushpender

Смежные вопросы