2017-10-28 136 views
0

oDataサービスに基づいて自分のページにSmartFilterBarを持っています。フィルタリング可能なフィールドの1つに値ヘルプダイアログがあります。値のヘルプダイアログが開いたら、この値のヘルプダイアログで検索パラメータの1つを入力する必要があります。これどうやってするの?私は "byId()メソッド"私は今作成されたダイアログのIDではないので、コントロールによって値のヘルプダイアログを得ることができません。sapui5 smartFilterBarのヘルプヘルプダイアログにパラメータを渡します。ControlConfiguration

+0

ので、何の介入はにかけ値を渡すあなたの側から必要とされていない:ダイアログのIDを取得することができますフィールド。おそらく、アノテーションに何か問題があります。 –

+0

はい、すぐに正しく動作しています。しかし、私は開いたダイアログボックスで自動的に検索パラメータの1つを入力する必要があります。スクリーンショットのように:https://prnt.sc/h3ek1m –

+0

@ИльдарМурзенков私はあなたが問題ではないことを理解しました。フォーム内のSmartFieldであれば、アノテーションを使用してVHダイアログを簡単にプレフィルすることは簡単ですが、その方法はわかりませんFilterBarにあります。おそらくそこに私のために知られていない注釈があります。あなたはそれを見つけなければなりません。他の "ハック"の解決策は、idによってこのダイアログを取得することです - あなたはui5によって生成されたHTMLを検査し、そこからIdを取得する必要があることを行うためです。 –

答えて

0

私は解決策を見つけた:どのように私は開いたvaluehelpdialogのIDを取得することができます:「onValueHelpRequest」イベントで を私はクラス「sap.ui.comp.valuehelpdialog.ValueHelpDialog」の「onAfterRendering」方法をredigineすると、この方法で私はあなたは(注釈に基づく)のSmartFilterを使用している場合、それは箱から出してすぐに動作するはずです

filterInitialize: function() { 
    var oDogovorControl = this.getView().byId("smartFilterBar").getControlByKey("Dogovor"); 
    oDogovorControl.attachValueHelpRequest(this.onValueHelpRequest, this); 
}, 
onValueHelpRequest: function() { 
    sap.ui.comp.valuehelpdialog.ValueHelpDialog.prototype.test = sap.ui.comp.valuehelpdialog.ValueHelpDialog.prototype.onAfterRendering; 
    var fntest2 = function(oEvent){ 
         this.test(); 
         console.log(this.getId()); 
        }; 
    sap.ui.comp.valuehelpdialog.ValueHelpDialog.prototype.onAfterRendering = fntest2; 
}