2011-04-18 87 views
0

我试图掩盖没有工具栏的树面板,以便用户可以在面板被屏蔽时继续打字。这似乎比我想象的更困难,所以一些建议会很棒!ExtJS掩盖没有工具栏的TreePanel

虽然它的概率没有必要的,这是我的(精简)的基础树面板:

Ext.tree.TreePanel({ 
    id:'quicksearch_panel', 
    root:{ 
     nodeType:'async', 
     preloadChildren:false  
    }, 
    loader: new Ext.tree.TreeLoader({ 
     dataUrl:'...',   
     baseParams:{}  
    }), 
    tbar:['Quicksearch:', {  
     xtype:'textfield', 
     id:'quicksearch_combo', 
     emptyText: 'search...', 
     listeners:{ 
      keyup:{buffer:400, fn:function(field, e) { 

        // Mask Panel and not Combo HERE 
       }}  
     } 
    }] 
}); 

回答

1

我想你可以尝试掩盖TreePanel中的body?元素body是继承Panel的所有组件中的一个元素,并且工具栏实际上不在此body元素中,因此您可能只是掩盖了body,那么您的工具栏将不在遮罩叠加层中。

试试这个:

var tree = Ext.tree.TreePanel({ 
    //...... 
    tbar: ['Quicksearch:', { 
     xtype:'textfield', 
     emptyText: 'search...', 
     enableKeyEvents: true, //you need this for key events 
     listeners:{ 
      keyup:{ 
       buffer:400, 
       fn:function(field, e) { 
        tree.body.mask(); 

        //When the searching done, unmask it 
        //tree.body.unmask(); 
       } 
      } 
     } 
    }] 
}); 

不要更新我们,如果工程:)

+0

由于梅西是工作一种享受!我正在尝试.getEl('body'),它似乎掩盖了整个事情。 – neolaser 2011-04-18 03:57:09

+0

没问题:)。 'this.body'对我来说很有用,可以掩盖大部分与面板相关的组件,比如'Window',你可能只想遮住你的身体,而不是浮动窗口上的十字按钮/按钮行。 – 2011-04-18 05:03:20