0

そのように構成されたMessageBoxがあります

Ext.MessageBox.show({
 buttons:Ext.MessageBox.OKCANCEL,
 prompt:true,
 buttonText:{ok:"Button1",cancel:"Button2"},
 fn:function(btn, text, cBoxes){
  if(btn=='ok'){
   // do not close
   // return false does not help
  }
 }
});

ボタンのクリックで閉じないようにする方法がわかりません。特に、ユーザーが「OK」ボタンを押したときに閉じたくありません。Web でオーバーライドを見たことがありますが、ボタンのプロパティを適切に構成する方法がわかりません。このタスクには非常に簡単な解決策があるはずです。

4

1 に答える 1

1

完全に制御できる通常のウィンドウを使用する必要があります。

あなたの場合、それは次のようになります。

Ext.widget('window', {
    autoShow: true
    ,closable: false
    ,modal: true
    ,title: "My window"
    ,defaults: {
        margin: 5
    }
    // you can obviously compose the items you want; an input field
    // is what you get with the prompt window
    ,items: [{
        xtype: 'textfield'
        ,itemId: 'inputField'
    }]
    ,buttons: [{
        text: "Button1"
        ,handler: function(button) {
            // here's how to get a ref to the window (for closing)
            var win = button.up('window'),
                // here's the value of the field
                input = win.down('#inputField').getValue();

            // you can close the window if you want, or not
            if (!Ext.isEmpty(input)) {
                win.close();
            }
        }
    },{
        text: "Button2"
        ,handler: function() {
            // ...
        }
    }]
});
于 2013-08-28T07:57:23.237 に答える