oDataサービスに基づいて自分のページにSmartFilterBarを持っています。フィルタリング可能なフィールドの1つに値ヘルプダイアログがあります。値のヘルプダイアログが開いたら、この値のヘルプダイアログで検索パラメータの1つを入力する必要があります。これどうやってするの?私は "byId()メソッド"私は今作成されたダイアログのIDではないので、コントロールによって値のヘルプダイアログを得ることができません。sapui5 smartFilterBarのヘルプヘルプダイアログにパラメータを渡します。ControlConfiguration
0
A
答えて
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;
}
ので、何の介入はにかけ値を渡すあなたの側から必要とされていない:ダイアログのIDを取得することができますフィールド。おそらく、アノテーションに何か問題があります。 –
はい、すぐに正しく動作しています。しかし、私は開いたダイアログボックスで自動的に検索パラメータの1つを入力する必要があります。スクリーンショットのように:https://prnt.sc/h3ek1m –
@ИльдарМурзенков私はあなたが問題ではないことを理解しました。フォーム内のSmartFieldであれば、アノテーションを使用してVHダイアログを簡単にプレフィルすることは簡単ですが、その方法はわかりませんFilterBarにあります。おそらくそこに私のために知られていない注釈があります。あなたはそれを見つけなければなりません。他の "ハック"の解決策は、idによってこのダイアログを取得することです - あなたはui5によって生成されたHTMLを検査し、そこからIdを取得する必要があることを行うためです。 –