2016-11-02 5 views
1

私は検索フィールドとして機能するInput要素を持っています。以下の関数は、検索結果を送信した後にスコープのデータに対してユーザー入力をフィルタリングします。フィルタ "EQ"メソッドを使用して検索フィールドの結果を検索するにはどうすればよいですか?

私の質問は次のとおりです。どのようにフィルタリングの結果を見つけることができますか?たとえば、ユーザーが有効な製品を入力したとしますが、そのデータに履歴は表示されません。送信されたクエリの結果が一致しない場合は、ユーザーに通知する方法(アラートなど)があります。データ?

onFilterProduct : function (oEvent) { 
     // build filter array 
     var aFilter = [], 
      //get the searchfield Id 
      oInput = this.byId("productSearch"), 

      oTable = this.getView().byId("idProductsTable"), 
      oBinding = oTable.getBinding("items"), 

      //get searchfield value 
      sQuery = oInput.getValue(), 

    if (sQuery) { 

      //push matches into aFilter array     
      aFilter.push(new Filter("Product", FilterOperator.EQ, sQuery)); 

      oBinding.filter(aFilter); 
     }; 
    }; 

「aFilter」配列のどこにこれがあるかわかりません。それはあなたがフィルタを適用した後バインディングリスト内のエントリ数を取得するためにoBinding.getLength()を使用することができます http://jsbin.com/vigeg/1/edit?js,output

答えて

1

を助ける場合ここで

は一例です。あなたのケースでは0が返されます。別の方法は、フィルタを適用した後にoTable.getItems()を呼び出すことです。空の配列が返されます。

関連する問題