ExtJs Message box с пользовательскими кнопками - PullRequest
18 голосов
/ 07 июня 2011

Как отобразить окно сообщения ExtJS с помощью пользовательских кнопок.

Мне нужно окно сообщения с пользовательским сообщением и кнопками «Отмена» и «Деактивировать». Пожалуйста, дайте некоторую идею.

buttons: [{
    text: "Cancel",
    handler: function () {
        Ext.MessageBox.hide();
        //submitTicketForm();
    }
},{
    text: "Deactivate",
    handler: function () {
        Ext.MessageBox.hide();
    }
}],

Я использую его вот так, но не получаю никаких кнопок.

Ответы [ 4 ]

16 голосов
/ 27 ноября 2011

В ExtJS 4 вы можете создать свой собственный компонент, подобный этому:

Ext.define('App.view.MyDialog', {
    /**
     * Shows the dialog.
     */
    show: function() {
        var dialog = Ext.create('Ext.window.MessageBox', {
            buttons: [{
                text: 'baz',
                iconCls: 'icon-add',
                handler: function() {
                    dialog.close();
                }
            }]
        });

        dialog.show({
            title: 'foo!',
            msg: '<p>bar?</p>',
            icon: Ext.MessageBox.WARNING
        });

        dialog.setHeight(160);
        dialog.setWidth(420);
    }
});

тогда:

var dialog = Ext.create('App.view.MyDialog');
dialog.show();
8 голосов
/ 07 июня 2011

MessageBox - это отдельный экземпляр окна с внутренним управлением, используемого для приглашения, отображения, предупреждения и т. Д.

Вы можете изменить buttonText, передав строку для шоу, как это:

buttons: {ok: "Foo", cancel: "Bar"}

См .: MessageBox

buttons: { 
                ok: "Foo", 
                handler: function(){ 
                    Ext.MessageBox.hide(); 

                },
                cancel: "Bar",
                handler: function(){
                    Ext.MessageBox.hide();
                }
        }
2 голосов
/ 07 августа 2014

Используйте «buttonText» вместо «button»,

buttonText: {ok: 'Deactivate', cancel: 'Cancel'},
fn: function(btn) {
    if (btn === 'ok') {
        Ext.MessageBox.hide();
    }  else {
        Ext.MessageBox.hide(); 
    } 
}
0 голосов
/ 15 декабря 2014

В ExtJS 4 и ExtJS 5, чтобы установить пользовательский текст для кнопок, вам нужно использовать оба значения: buttons и buttonText:

buttons: [{
    Ext.Msg.OK
}],
buttonText: { 
    ok: "Custom text"
},
fn: function() { 
    // ...handle OK button
}
...