2011-06-07 88 views
18

如何使用自定義按鈕顯示ExtJS消息框。帶自定義按鈕的ExtJs消息框

我想要一個帶有自定義消息和「取消」和「取消激活」按鈕的消息框。 請給點意見。

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

我正在使用它,但沒有得到任何按鈕。

回答

8

MessageBox的是用於提示,顯示,警示內部管理窗口的單一實例等

您可以通過在一個字符串傳遞作秀這樣的改變buttonText:

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

參見: MessageBox

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

       }, 
       cancel: "Bar", 
       handler: function(){ 
        Ext.MessageBox.hide(); 
       } 
     } 
+0

感謝您的重播..它工作正常,但h當我試圖添加一個按鈕的處理程序,按鈕沒有越來越........謝謝 – MNR 2011-06-07 06:42:26

+1

添加此:'fn:function(btn){\t console.log('btn'+ btn );}' – MMT 2011-06-07 07:15:47

+1

我認爲重要的是要注意''buttons'屬性只有當你創建一個新的消息框時纔可用。如果你使用'Ext.Msg.show({config})''沒有'button'屬性! – Patrick 2013-08-31 04:25:51

16

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

您可以定義一個類並在其中創建一個組件。爲什麼不擴展Messagebox? – A1rPun 2013-01-24 04:31:22

2

使用 'buttonText' 而不是 '按鈕',

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

在ExtJS的4和ExtJS的5,設置自定義文本按鈕,您需要同時使用buttonsbuttonText配置:

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