如何在Ext.Msg中更改按钮顺序?

Yob*_*bac 2 javascript extjs extjs4

我有一个MessageBox在我的应用程序中显示,并指​​定'YES'按钮必须在右侧.我怎样才能更改YESNOCANCEL订单?(可能在一个CANCELNOYES吗?)

这是我的实际代码:

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

Rei*_*ius 6

Ext.Msg是单例,因此与普通组件相比,它具有奇怪的生命周期.这意味着下面的代码可能应该在Ext.onReadyApp创建的早期执行.这将更改应用程序中所有警报的按钮顺序,因为它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]);
Run Code Online (Sandbox Code Playgroud)

它基本上只是重新排序Singleton中的按钮.