1

アプリケーション全体ですべての Ext.MessageBox.alert() を取得し、新しい位置に設定したいと考えています。Ext.MessageBox.alert() を使用したアプリケーションに多くの jsp ページがあり、jsp のコードに触れることなく、すべてのメッセージ ボックスを再配置する必要があります。ただし、js ファイルを含めることはできます。

オプション 1: https://stackoverflow.com/questions/1...l-align-with-yでメッセージ アラートの位置を変更できることがわかりまし たが、すべての jsp ページを変更して追加する必要があります。

msgBox=Ext.MessageBox.alert(jsonData.responseMessage);
msgBox.getPositionEl().setTop(50);

オプション 2: メッセージ ボックスを拡張します: それでもすべての jsp を変更します

オプション 3: css を使用する: 方法がわからない?

他に解決策がある場合、またはCssソリューションで問題ない場合は、誰でも私を案内してもらえますか:

私のコードは以下です

    Ext.Ajax.request({
                        url : 'submitAddZone.htm',
                        params : {
                                                zoneName : Ext.getCmp('zoneNameId').getValue(),
                                                emailParam : Ext.getCmp('emailId').getValue(),
                                                requestTypeParam : Ext.getCmp('requestTypeId').getValue(),
                                                level : selectedLevel + 1,
                                                parentZoneName : selectedParentZone,
                                                currency : currencyValue,
                                                startDate : Ext.getCmp('startDateId').getValue(),
                                                startTime : Ext.getCmp('startTimeId').getValue()
                                            },
                                            method : 'POST',

                                            success : function(response,request) {
                                                toggleAddZoneElements();

                                                       var jsonData = Ext.decode(response.responseText);
                                                       if(jsonData.isSuccess){
                                                       msgBox=   Ext.MessageBox.alert(jsonData.responseMessage);
                                                     msgBox.getPositionEl().setTop(50);

                                                       addZoneWin.close();
                                                       toggleAddZoneButtons();
                                                       tree.getStore().load({url: 'loadCustomerStructure.htm'});
                                                       }else{
                                                       Ext.getCmp('sendRequest').setIcon();
                                                       Ext.getCmp('errorMessage1').setText(Encoder.htmlDecode(jsonData.errorMessage));
                                                       Ext.getCmp('errorMessage1').show();
                                                       }
                                            },
                                            failure : function(
                                                    response) {
                                                toggleAddZoneElements();
                                                msgBox= Ext.MessageBox.alert(notCreatedLabel);
                                                addZoneWin.close();
                                                msgBox.getPositionEl().setTop(50);
                                            }

                                        });
4

1 に答える 1

0

クリーンな解決策は、Ext.MessageBox.alert() を呼び出して位置を変更するカスタム アラート メソッドを提供する独自の MessageBox クラスを作成することです。ただし、これにはすべての jsp ファイルを変更する必要があります。

今では汚れています: Ext.MessageBox.alert をオーバーライドすることができます:

Ext.override(Ext.MessageBox,{
    alert: function(message){
         var msgBox = Ext.MessageBox.alert(message);
         msgBox.getPositionEl().setTop(50);
    }
});

しかし、これは Ext.MessageBox.alert() へのすべての呼び出しに影響します。コードにそのようなハックを入れたくありません。

于 2013-07-18T13:42:22.000 に答える