带有自定义按钮的 ExtJs 消息框

Posted

技术标签:

【中文标题】带有自定义按钮的 ExtJs 消息框【英文标题】:ExtJs Message box with Custom buttons 【发布时间】:2011-06-07 05:39:37 【问题描述】:

如何使用自定义按钮显示 ExtJS 消息框。

我想要一个带有自定义消息和“取消”和“停用”按钮的消息框。 请给点意见。

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

我正在这样使用它,但没有得到任何按钮。

【问题讨论】:

【参考方案1】:

在 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();

【讨论】:

您定义一个类并在其中创建一个组件。为什么不直接扩展 Messagebox?【参考方案2】:

MessageBox 是内部管理的 Window 的单个实例,用于提示、显示、警报等。

您可以通过传入一个字符串来更改按钮文本,如下所示:

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

参考: MessageBox

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

                ,
                cancel: "Bar",
                handler: function()
                    Ext.MessageBox.hide();
                
        

【讨论】:

感谢您的重播..它工作正常,但是如何添加处理程序,当我试图为一个按钮添加处理程序时,按钮没有得到........谢谢跨度> 添加这个:fn : function(btn) console.log('btn'+btn); 我认为重要的是要注意buttons 属性仅在您创建新消息框时可用。如果您使用的是Ext.Msg.show(config),则没有button 属性!【参考方案3】:

使用“buttonText”而不是“button”,

buttonText: ok: 'Deactivate', cancel: 'Cancel',
fn: function(btn) 
    if (btn === 'ok') 
        Ext.MessageBox.hide();
      else 
        Ext.MessageBox.hide(); 
     

【讨论】:

【参考方案4】:

在 ExtJS 4 和 ExtJS 5 中,要为按钮设置自定义文本,您需要同时使用 buttonsbuttonText 配置:

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

【讨论】:

以上是关于带有自定义按钮的 ExtJs 消息框的主要内容,如果未能解决你的问题,请参考以下文章

单击一行后,Extjs 4 网格自定义添加一个带有文本字段的面板

ExtJS 4 或 4.1 MessageBox 自定义按钮

百度地图api点击 自定义的标注,弹出公交车、驾车那个框。

带有 Onclick 的自定义按钮,隐藏 Onclick 事件

将自定义组件添加到 EXTJS 图表

自定义 UITableViewCell 按钮单击