2

我有一个 MessageBox 显示在我的应用程序中,并指定“是”按钮必须在右侧。我如何更改YESNOCANCEL订单?(可能在CANCELNOYES中?)

这是我的实际代码:

Ext.Msg.show({
             title: 'myTitle',
             msg: 'myMessage',
             buttonText : {
                 cancel : 'Cancel',
                 yes : 'Yes'
             },
             fn: function(btn) {
                 if(btn == 'yes') {
                     dodat(); 
                 }
             }
        });   
4

2 回答 2

7

Ext.Msg是一个单例,因此与普通组件相比,它的生命周期很奇怪。这意味着下面的代码可能应该在Ext.onReady应用程序创建的早期执行。这也将更改应用程序中所有警报的按钮顺序,因为Ext.Msg它是单例:

var msgButtonBar = Ext.Msg.down("toolbar");
var okButton = msgButtonBar.items.items[0];
var yesButton = msgButtonBar.items.items[1];
var noButton = msgButtonBar.items.items[2];
var cancelButton = msgButtonBar.items.items[3];
msgButtonBar.removeAll(false);
msgButtonBar.add([cancelButton, noButton, yesButton, okButton]);

它基本上只是重新排序单例中的按钮。

于 2013-07-25T15:37:28.200 回答
1

我建议不要弄乱Ext.MessageBox单例,而只需使用您选择Ext.Window的配置创建一个自定义扩展。buttons

使窗口看起来像它的消息框实际上只是一些小的配置。就像是:

var msgBox = new Ext.Window({
    width: 300,
    height: 150,
    buttons: [{ text: 'Cancel', handler...}, { text: 'Yes', handler...}],
    title: 'Alert',
    modal: true|false,
    html: 'Are you sure?'
});
msgBox.show();

如果样式不完美,您甚至可以将“ext-mb-dialog”或任何类添加到此窗口配置中。

于 2013-07-25T17:16:29.407 回答