ExtJS 更改 MessageBox 中默认按钮的位置 (ExtJS 4.2.1)
ExtJS change position of default buttons in MessageBox (ExtJS 4.2.1)
如果您使用带有默认按钮的代码:
Ext.Msg.show({
title:'Save Changes?',
msg: 'You are closing a tab that has unsaved changes. Would you like to save your changes?',
buttons: Ext.Msg.YESNOCANCEL,
icon: Ext.Msg.QUESTION
});
window 上的按钮顺序为是 - 否 - 取消。我希望他们在订单中取消 - 不 - 是的,以便在我的应用程序中保持一致。有没有办法根据我的需要添加不同的配置或更改它?
默认按钮只是在 Ext.window.MessageBox.makeButton() private method based on Ext.window.MessageBox.buttonIds 配置中创建,并根据位掩码 buttons: Ext.Msg.YESNOCANCEL
.
显示/隐藏
所以我们只需要覆盖 buttonIds
配置和位掩码:
Ext.define('Ext.overrides.MessageBox', {
override: 'Ext.window.MessageBox',
OK: 1, //0001
CANCEL: 2, //0010
NO: 4, //0100
YES: 8, //1000
OKCANCEL: 3, //0011
YESNO: 12, //1100
YESNOCANCEL: 14, //1110
buttonIds: [
'ok', 'cancel', 'no', 'yes'
]
});
Ext.Msg
/ Ext.MessageBox
是单例,最初定义为 Ext.window.MessageBox
在 我们的覆盖之前的实例(检查 Ext.MessageBox代码)。
所以我们也必须覆盖 Ext.Msg
/ Ext.MessageBox
:
Ext.Msg = Ext.MessageBox = new Ext.window.MessageBox();
检查此 simple fiddle。
如果您使用带有默认按钮的代码:
Ext.Msg.show({
title:'Save Changes?',
msg: 'You are closing a tab that has unsaved changes. Would you like to save your changes?',
buttons: Ext.Msg.YESNOCANCEL,
icon: Ext.Msg.QUESTION
});
window 上的按钮顺序为是 - 否 - 取消。我希望他们在订单中取消 - 不 - 是的,以便在我的应用程序中保持一致。有没有办法根据我的需要添加不同的配置或更改它?
默认按钮只是在 Ext.window.MessageBox.makeButton() private method based on Ext.window.MessageBox.buttonIds 配置中创建,并根据位掩码 buttons: Ext.Msg.YESNOCANCEL
.
所以我们只需要覆盖 buttonIds
配置和位掩码:
Ext.define('Ext.overrides.MessageBox', {
override: 'Ext.window.MessageBox',
OK: 1, //0001
CANCEL: 2, //0010
NO: 4, //0100
YES: 8, //1000
OKCANCEL: 3, //0011
YESNO: 12, //1100
YESNOCANCEL: 14, //1110
buttonIds: [
'ok', 'cancel', 'no', 'yes'
]
});
Ext.Msg
/ Ext.MessageBox
是单例,最初定义为 Ext.window.MessageBox
在 我们的覆盖之前的实例(检查 Ext.MessageBox代码)。
所以我们也必须覆盖 Ext.Msg
/ Ext.MessageBox
:
Ext.Msg = Ext.MessageBox = new Ext.window.MessageBox();
检查此 simple fiddle。