2013-11-25 55 views
0

我是extJS的新手。我想绑定一个Ext.grid.PanelExt.Panel(是的,我真的很想这么做!)。这是我已经试过 -将Ext.grid.Panel绑定到Ext.Panel时出错

Var Panel = new Ext.Panel({ 
    title: 'Test', 
    id: 'Panel', 
    items: [Grid] 
}); 

Var Grid = 
{ 
xtype: 'grid', 
columns: [ 
    { header: 'Resort', dataIndex: 'resort' }, 
    { header: 'Arrival', dataIndex: 'arrival' }, 
    { header: 'Accompanying Guest(s)', dataIndex: 'guest', flex: 1 } 
] 
}; 

现在我想在Ext.Window

var win2 = new Ext.Window({ 
        layout: 'fit', 
        width: 900, 
        height: 600, 
        closeAction: 'hide', 
        plain: true, 
        items: [Panel]       
       }); 
       b.getEl().on('click', function() { 
        win2.show(); 
       }); 

这结束一个错误打开Panel - Uncaught TypeError: Cannot read property 'events' of undefined

但是,当我改变Panel如下,其工作正常 -

var Panel = new Ext.Panel({ 
    title: 'Test', 
    id: 'Panel', 
    items: 
     [ 
      { 
       xtype: 'grid', 
       columns: [ 
         { header: 'Resort', dataIndex: 'resort' }, 
         { header: 'Arrival', dataIndex: 'arrival' }, 
         { header: 'Accompanying Guest(s)', dataIndex: 'guest', flex: 1 } 
       ] 
      } 
     ] 
}); 

我以前的代码出了什么问题?

回答

0

当然这是行不通的。你基本上这样做:

var y = x + 1; 
console.log(y); // Why isn't y 2? 
var x = 1; 
+0

好的我同意,但是如果'Grid'在另一个'.js文件'中呢? – Sandy

+0

它没有任何区别,你不能无序运行代码。 –

+0

好的,我还有1个问题1. var grid = {type:'grid',....'''var grid = Ext.create('Ext.grid.Panel', {...' – Sandy

0

要么你有你的项目使用之前,如下定义网格:

var Grid = { 
    xtype: 'grid', 
    columns: [{ 
     header: 'Resort', 
     dataIndex: 'resort' 
    }, { 
     header: 'Arrival', 
     dataIndex: 'arrival' 
    }, { 
     header: 'Accompanying Guest(s)', 
     dataIndex: 'guest', 
     flex: 1 
    }] 
}; 

var Panel = new Ext.Panel({ 
    // title: 'Test', 
    id: 'Panel', 
    items: [Grid] 
}); 

要不然多一个选择是(当你在不同的有格js文件,你可以与听众去按以下步骤进行):

 var Panel = new Ext.Panel({ 
      // title: 'Test', 
      id: 'Panel', 
      items: [], 
      listeners: { 
       render: function(pnl) { 
        pnl.add(Grid); 
       } 

      } 
     }); 

     var Grid = { 
      xtype: 'grid', 
      columns: [{ 
       header: 'Resort', 
       dataIndex: 'resort' 
      }, { 
       header: 'Arrival', 
       dataIndex: 'arrival' 
      }, { 
       header: 'Accompanying Guest(s)', 
       dataIndex: 'guest', 
       flex: 1 
      }] 
     }; 

     var win2 = new Ext.Window({ 
      layout: 'fit', 
      width: 500, 
      height: 400, 
      closeAction: 'hide', 
      plain: true, 
      items: [Panel] 
     }); 
     b.getEl().on('click', function() { 
      win2.show(); 

下面是represnt小提琴一样

Demo