2017-05-10 4 views
0

xmlビューのコントローラでフィルタを動的にビューのコントロールにバインドしたいとします。私はこれを行う方法を知っていますが、私はこれを最初に行う適切な方法を見つけることはありません。SAPUI5の初期フィルタをコントロールにバインドする場合

など。ビュー上にComboBoxを定義し、(ビュー内の)oDataモデルへのバインディングパスを与えました。次に、コントローラでComboBoxの項目にフィッティングを設定します。ビューのonInitを試しましたが、バインディングがまだComboBoxオブジェクトに設定されていません。

私は遅延ロードを実行してそれを解決し、 "loadItems"イベントでフィルタを設定しました。遅延ロードを使用しないことでこれを行う方法はありますか?適切なイベントや標準フックを見つけられませんでした。

ありがとうございました。

+0

あなたはバインディングの '外側'にする必要はありません。このページを確認してください> https://help.sap.com/saphelp_nw74/helpdata/en/91/f057786f4d1014b6dd926db0e91070/content.htm –

答えて

1

したがって、バインディングはoninit()で利用できません...まさに初めてバインディングを作成するのですか?最初にバインディングを作成する場合は、最初のフィルタを適用することもできます。

例えば、onInit内のコントローラでは、this.byId( "myComboBox")を呼び出してコントロールを取得します。その後、oComboBox.bindItems({...})と呼び出し、初期フィルタを渡します。したがってbindItems(...)はフィルタも受け入れます。フィルタが変更された場合は、oComboBox.getBinding( "items")。filter(...)を呼び出してフィルタを更新することができます。 worklist app tutorialで詳細を確認してください...

ところで、XMLViewのフィルタを含むバインディングを直接指定することもできます。詳細はanswer hereをご覧ください。

+0

バインディングはXMLビューで定義されています。ユースケースは少し特殊です。私はフィルタ値をより柔軟にして、設定ファイルから読みたいと思っています。アプリ内のさまざまなビューでも使用されます。だから私はXMLフィルターの定義を避けました。 – tomtom

関連する問題