2016-05-06 8 views
0

私はアプリケーションで検索を実現するために、TextFieldとImageを使用するのに最も時間がかかりました。しかし、今私はSAPUI5でSearchFieldを見つけました。私の問題は、私が検索をしたとき、フィールド内の値がクリアされていることです。これをしない方法はありますか?私は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

さて、私は自分のコードを2回見ています...私のテキストフィールドのコードに何か問題があり、私のsearchfieldが毎回クリアされていることが分かります。お返事ありがとうございます。私はすぐに返信します:) – 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); 
 
     } 
 
    } 
 
}

このコードは、「マスター詳細テンプレート」、すなわち

+0

常にgetメソッドを使用してください。getSource()、getProperties()、getValueなど – Pushpender

+0

このコードを参照してくださいhttps://sapui5.netweaver.ondemand.com/sdk/#/sample/ sap.m.sample.ListSelectionSearch/code/List.controller.js – Pushpender