我使用TextField和Image的时间最多,以便在我的应用程序中实现搜索。但现在我在SAPUI5中找到了SearchField。我的问题是,当我完成搜索时,该字段的值将被清除。有没有办法不这样做?我研究了API,但我找不到这样的方法。或者我需要自己编码吗?
答案 0 :(得分:0)
我不确定文本为什么要清除。
在你看来,你应该有这样的东西:
<SearchField search="handleSearchPressed" />
你的控制器应该/看起来像这样:
handleSearchPressed: function (oEvent) {
var sQuery = oEvent.getParameter("query");
if (sQuery === "") {
return;
}
// perform a search
}
什么都不应该清除你的SearchField 另请参阅Search Field Samples。
答案 1 :(得分: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);
},
答案 2 :(得分: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);
}
}
}
此代码适用于列表项绑定,即“主要详细信息模板”