2011-07-21 16 views
12

¿Cómo aplicar loadMask a un solo elemento y no a todo el ancho del navegador?

predeterminado
enter image description here¿Aplicar loadMask() a un solo elemento en extjs?



aquí, sólo un elemento está enmascarado, y una messageBox está en el centro, dentro de este elemento y no toda la pantalla ...
enter image description here


cualquier ideas?

EDIT:

@Molecule, gracias, pero esto es cuando se cargan los datos de una fuente, lo que necesito es:

{ 
    xtype:"button", 
    text:"Alert", 
    handler: function(){ 

     Ext.Msg.show({ 
     title:'Save Changes?', 
     msg: 'You are closing ?', 
     buttons: Ext.Msg.YES, 
     setLoading: // here somehow only mask parent element, and position alertBox... 
    } 

} 
+0

Usted habla de elementos pero son componentes. –

+0

@Chris, sí, son [Componentes] (http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Component) :-) –

Respuesta

29

Cada componente tiene su propio loadMask propiedad. Puede usarlo llamando al YourComponent.setLoading. Aquí está fiddle para ilustrar de lo que estoy hablando.

Otra forma es usar new Ext.LoadMask(YourComponent.el, {msg:"Please wait..."});. Puedes ver el uso en mi fiddle.

ACTUALIZACIÓN

Aquí es ejemplo de código que muestra cómo aplicar ExtJS4 loadMask y de mensaje que se especifique Widget

Ext.create('Ext.panel.Panel', { 
    width: 600, 
    height: 400, 
    title: 'Border Layout', 
    layout: 'border', 
    items: [{ 
     title: 'West Region is collapsible', 
     region:'west', 
     xtype: 'panel', 
     width: 400, 
     id: 'west-region-container', 
     layout: 'fit' 
    },{ 
     title: 'Center Region', 
     region: 'center', 
     xtype: 'panel', 
     layout: 'fit', 
    }], 
    renderTo: Ext.getBody() 
}); 
var myMask = new Ext.LoadMask(Ext.getCmp('west-region-container').el, {useMsg: false}); 
myMask.show(); 
var msg = Ext.Msg.show({ 
    title:'Save Changes?', 
    msg: 'Bla-Bla', 
    buttons: Ext.Msg.OK, 
    modal: false 
}); 
msg.alignTo(Ext.getCmp('west-region-container').el, 'c-c'); 

Y aquí es try-it-yourself example.

+5

Y todos los componentes en ExtJS tienen al menos una propiedad 'el' que es, de hecho, un' Ext.Element' que apunta hacia el div de envoltura. Siempre que pueda acceder a este elemento 'el', siempre puede invocar' .mask() 'o' .unmask() 'en este el o cualquier método definido en' Ext.Element'. –

+0

se puede proporcionar con un ejemplo simple de Ext.Msg.show y loadNask ?? Please –

+0

@Ingol, por supuesto. Eche un vistazo a este [violín] (http://jsfiddle.net/molecule/pKq8X/2/) –

Cuestiones relacionadas