самое время, когда я использовал TextField и изображение, чтобы реализовать поиск в моем приложении. Но теперь я нашел SearchField в SAPUI5. Моя проблема в том, что когда я выполнил поиск, значение insidfe будет очищено. Есть ли способ не делать этого? Я изучил API, но я не могу найти такой метод. Или мне нужно закодировать его самостоятельно?SAPUI5 SearchField
ответ
Я не уверен, почему текст очищается.
По вашему мнению, вы должны иметь что-то вроде этого:
<SearchField search="handleSearchPressed" />
И ваш контроллер должен/может выглядеть следующим образом:
handleSearchPressed: function (oEvent) {
var sQuery = oEvent.getParameter("query");
if (sQuery === "") {
return;
}
// perform a search
}
Ничто не должно очистить свой SearchField.
См. Также Search Field Samples.
Хорошо, я дважды просматриваю свой код ... Может быть, что-то не так с кодом для моего текстового поля и знаю, что мое поисковое поле каждый раз очищается. Спасибо за ваш ответ, я скоро отвечу :) – Chris
Не могли бы вы показать мне свой код контроллера и код вида? – Bernard
Я добавил его ниже :) – Chris
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);
},
<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 Шаблон"
Использование должно всегда использовать методы get ex: getSource(), getProperties(), getValue и т. Д. – Pushpender
см. Этот код https://sapui5.netweaver.ondemand.com/sdk/#/sample/ sap.m.sample.ListSelectionSearch/код/List.controller.js – Pushpender
См мой ответ - я понял ваш вопрос правильно? – Bernard
Да, вы правильно поняли это, но может быть, что я сделал что-то не так в своем коде. Потому что, когда щелкнут MenuItem, поле поиска должно очиститься. Возможно, есть что-то worng .... – Chris
Вы хотите, чтобы поле поиска очистилось? – Bernard