ExtJS 4 或 4.1 MessageBox 自定义按钮

Posted

技术标签:

【中文标题】ExtJS 4 或 4.1 MessageBox 自定义按钮【英文标题】:ExtJS 4 or 4.1 MessageBox Custom Buttons 【发布时间】:2012-09-04 12:14:46 【问题描述】:
Ext.MessageBox.show(
    title:'Messagebox Title',
    msg: 'Are you sure want to delete?',
    buttons: yes: "Some Button 1",no: "Some Button 2",cancel: "Some Button 3"
);

ExtJS 4 或 4.1 不支持此代码。按钮不显示。

【问题讨论】:

【参考方案1】:

刚刚发现如何做到这一点,希望它可以帮助某人。如您所见,您可以随心所欲地处理按钮。请注意,该框架默认只有 4 个按钮,这是一个不容易克服的限制。在源代码中有多个从 0 到

Ext.MessageBox.show(
    title:'Messagebox Title',
    msg: 'Are you sure want to delete?',
    buttonText: yes: "Some Button 1",no: "Some Button 2",cancel: "Some Button 3",
    fn: function(btn)
        console.debug('you clicked: ',btn); //you clicked:  yes
    
);

【讨论】:

【参考方案2】:

您不能在方法 show 中执行此操作,因为方法中的按钮配置将标识要显示的按钮的数字作为参数。 您可以做的是预先定义您的消息框,然后将其显示出来。

 var win = Ext.create('Ext.window.MessageBox', 
     width:300,
     height: 100,
     buttons: [
      text: 'My button 1',
        text: 'My button 2'
    ]
);

win.show(
     title:'Messagebox Title',
     msg: 'Are you sure want to delete?',
    icon: Ext.Msg.QUESTION
);​

【讨论】:

【参考方案3】:

使用以下代码:

Ext.MessageBox.show(
    title:'Messagebox Title',
    msg: 'Are you sure want to delete?',
    buttonText:                         
        yes: 'Some Button 1',
        no: 'Some Button 2',
        cancel: 'Some Button 3'
    
);

希望对你有帮助。

【讨论】:

【参考方案4】:

试试这个解决方案:

<script type="text/javascript">
            (function () 
                Ext.override(Ext.MessageBox, 
                    buttonText:  yes: "Sí", no: "No", cancel: "Cancelar" 
                );
            )();
    </script>

【讨论】:

以上是关于ExtJS 4 或 4.1 MessageBox 自定义按钮的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS 4.2.1 中 Ext.MessageBox.show(),如何解决显示不完整的问题??

ExtJS 4.1 如何动态创建带有网格的窗口

如何在 extjs 4.1 中使用包含图像的组合

在 ExtJs 4.1 中选择树面板的第一个叶节点

从 Sencha ExtJS 4.0 迁移到 ExtJS 4.1

ExtJS4学习笔记1