ExtJS - 在禁用的表单上设置消息框

时间:2013-12-23 20:57:31

标签: forms extjs

因此,为了让您了解我正在使用的内容,我有一个弹出模式,其中包含模态中的一系列单独形式。根据当前选择,表单将被禁用或启用。如果它们被禁用,我想在模式中的禁用表单上显示一个消息框,说明它被禁用的原因。

我尝试过使用Ext.msg.alert和其他形式的Ext.msg,但是我没有成功将它们留在表单上。我可以将它们对齐在窗体上,但是在滚动时它不会停留在窗体上,它只是固定在主窗口位置,而不是跟随模态内的窗体。这可能吗?

然后我尝试以一种hackish的方式进行操作,并在表单上设置一个加载掩码,显示该消息,但是当您向下滚动时也会移动。

我试图使用组件的'fixed'属性,但似乎什么也没做。

我不确定我是从错误的角度看是什么,或者是什么,但事情似乎并不适合我。

有什么想法吗?

listeners:{
    afterlayout: function(form, eOpts){
        if(form.disabled){
            var msg = Ext.Msg.alert({title:'Disabled', modal: false, fixed: true, msg:'Blah blah blah mmmkay.'});
            msg.alignTo(form.el, 'c-c');
            //fixed
        }
    }
 },

1 个答案:

答案 0 :(得分:1)

试试这个,让我知道结果。基本上,我们可以覆盖基本组件或编写我们的组件。

Ext.define('Artlantis.view.OverlayWindow', {
    extend: 'Ext.window.Window',
    alias: 'widget.overlaywin',
    defaults: {
        autoScroll: true
    },
    layout: 'fit',
    width: '50%',
    height: '50%',
    modal: true,
    closeAction: 'destroy',
    initComponent: function() {
        this.callParent(arguments);
    }
});

// to call this component
Ext.create('Artlantis.view.OverlayWindow',{
    title: 'Disabled',
    items: [
    {
       xtype: 'panel',
       items: [
           ...
       ]
    }
    ]
});

// or call by xtype
...
xtype: 'overlaywin'