messageBoxのハンドラ関数に余分なパラメータを渡したいです。
次のようなコンテキスト メニューを作成しました。
onEventContextMenu: function (s, rec, e) {
e.stopEvent();
if (!s.ctx) {
s.ctx = new Ext.menu.Menu({
items: [{
text: 'Delete event',
iconCls: 'icon-delete',
scope: this,
handler : function() {
Ext.MessageBox.show({
title : 'Reason',
msg : 'place reason:',
width : 300,
buttons : Ext.MessageBox.OKCANCEL,
multiline : true,
fn : this.showResultText(buttonId, text, rec)
});
}
}]
});
}
s.ctx.rec = rec;
s.ctx.showAt(e.getXY());
},
showResultText : function (btn, text, record){
alert(btn);
if (btn == 'cancel') {
alert(text + ' cancel');
}
if (btn == 'ok') {
alert(record.get('Name'));
}
},
そのため、ユーザーがイベントの削除をクリックすると、その理由を入力できます。彼が [OK] または [キャンセル] を押した後、ハンドラーを呼び出します。そこにあるボタンとテキストにアクセスできますが、追加のパラメーターを渡す必要があります。
Sencha のドキュメントを読むと、次のことがわかりました。
fn : 関数
構成されたボタンをクリックするか、ダイアログを閉じるボタンをクリックするか、入力を入力するために戻るボタンを押すことによって、ダイアログが閉じられたときに呼び出されるコールバック関数。
進行状況ダイアログと待機ダイアログは、ユーザー アクションに応答せず、プログラムでしか閉じることができないため、このオプションを無視します。必要な関数は、ダイアログを閉じた後に同じコードで呼び出す必要があります。渡されたパラメータ:
パラメーター
-buttonId : String 押されたボタンの ID。次のいずれか: ok yes no cancel
-text : prompt または multiline のいずれかが true の場合の入力フィールドの文字列値
-opt : Object show に渡される構成オブジェクト。
しかし、それでも私はこれを機能させることができません:(