2011-06-14 95 views
0

我得到了下面的错误与ExtJS的4:ExtJS的:在Ext.reg问题()

Uncaught TypeError: Object #<Object> has no method 'reg'

我添加的.js文件,其中包含下面的代码。

var myStore = new Ext.data.JsonStore({ 
    id:'ms', 
    totalProperty:'totalCount', 
    root:'rows', 
    url:'http://localhost:8080/ezDI/myservlet', 
    fields:[ 
      {name:'un'}, 
      {name:'pwd'}] 
}); 

Ext.ns('Example'); 
// example grid 
Example.Grid = Ext.extend(Ext.grid.GridPanel, { 
    initComponent:function() { 
     var config = { 
      store:myStore, 
      columns:[{ 
       //id:'ms', 
       header:"UserName", 
       width:40, sortable:true, 
       dataIndex:'un' 
      },{ 
       header:"PassWord", 
       width:20, 
       sortable:true, 
       dataIndex:'pwd' 
      }], 
      viewConfig:{forceFit:true}, 
      loadMask:true 
     }; // eo config object 

     // apply config 
     Ext.apply(this, Ext.apply(this.initialConfig, config)); 

     // call parent 
     Example.Grid.superclass.initComponent.apply(this, arguments); 

     // load the store at the latest possible moment 
     this.on({ 
      afterlayout:{scope:this, single:true, fn:function() { 
       this.store.load({params:{start:0, limit:30}}); 
      }} 
     }); 

    } // eo function initComponent 

}); 

Ext.reg('examplegrid', Example.Grid); 

回答

0

你正在写的ExtJS 3,而不是ExtJS的4

你应该阅读upgrade guide

这里是一个小码进行比较来说明差异。

// Ext 3: 
Ext.ns('MyApp'); // required in Ext 3 
MyApp.CustomerPanel = Ext.extend(Ext.Panel, { 
    // etc. 
}); 
Ext.reg('examplegrid', Example.Grid); 

var panel = new MyApp.CustomerPanel(cfg); 


// Ext 4 
Ext.define('MyApp.CustomerPanel', { 
    extend: 'Ext.panel.Panel', 
    alias: 'widget.examplegrid' 
    // etc. 
}); 
var panel = Ext.create('MyApp.CustomerPanel', cfg); 
//or: var panel = Ext.widget('examplegrid', cfg);