Extjs 网格面板工具栏渲染文本字段失败

Extjs 网格面板工具栏渲染文本字段失败,extjs,extjs4,extjs4.1,Extjs,Extjs4,Extjs4.1,我想在网格面板的tbar中添加textfield,但它不起作用 我试着用按钮,然后它就工作了 此代码不工作,错误消息显示,TypeError:g.el为null var grid = Ext.create('Ext.grid.Panel', { ... tbar : [ { xtype : 'textfield', name : 'test' } ] }); 但是这个代码是有效的 var grid = Ext.create('Ext.grid.Panel', { .

我想在网格面板的tbar中添加textfield,但它不起作用

我试着用按钮,然后它就工作了

此代码不工作,错误消息显示,TypeError:g.el为null

var grid = Ext.create('Ext.grid.Panel', {
...
tbar : [
  {
     xtype : 'textfield',
     name : 'test'
  }
]
});
但是这个代码是有效的

var grid = Ext.create('Ext.grid.Panel', {
...
tbar : [
  {
     xtype : 'button',
     text : 'keyword'
  }
]
});
有人知道为什么会这样吗

我发现,

它renderTo:'tableID',但我改为renderTo:Ext.getBody()

然后它就起作用了。但是我想把网格放到特定的html元素中,我应该怎么做

[编辑]

我想插入到#列表表

<div id="wrap">
    <table id="listTable"></table>
</div>

我只是试着“包装”然后它就起作用了

所以我尝试了,renderTo:'wrap>listTable'


但它不起作用:(

这对我来说在ExtJS 4.1上很好,尽管我通常在initComponent函数中初始化组件(尽管我不明白为什么它不应该像您这样工作)。因此这类似于:

initComponent: function() {
    this.dockedItems = [{
        xtype: 'toolbar',
        items: [ {xtype:'textfield', name:'test', value:'test'} ]
    }];
    this.callParent(arguments);
}

下面的代码在4.1.3中没有任何错误。这可能是您版本中的错误?您可以在其中一个框中测试它。只需复制粘贴它。
tbar
道具是应用于
top
dockdetem
的缩写。传递的数组将自动插入
工具栏中。没有其他问题了。So它必须起作用

Ext.create('Ext.data.Store', {
    storeId:'simpsonsStore',
    fields:['name', 'email', 'phone'],
    data:{'items':[
        { 'name': 'Lisa',  "email":"lisa@simpsons.com",  "phone":"555-111-1224"  },
        { 'name': 'Bart',  "email":"bart@simpsons.com",  "phone":"555-222-1234" },
        { 'name': 'Homer', "email":"home@simpsons.com",  "phone":"555-222-1244"  },
        { 'name': 'Marge', "email":"marge@simpsons.com", "phone":"555-222-1254"  }
    ]},
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'items'
        }
    }
});

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    tbar: [
      {
         xtype : 'textfield',
         name : 'test'
      }
    ],
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columns: [
        { text: 'Name',  dataIndex: 'name' },
        { text: 'Email', dataIndex: 'email', flex: 1 },
        { text: 'Phone', dataIndex: 'phone' }
    ],
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
});
编辑


需要有效的
id
、HTML元素或

您不需要在initComponents中执行此操作。您是对的,您不需要,我之所以这样做是因为其他原因。在任何情况下,上面问题中的代码都应该可以工作。谢谢您的回答,我用您的代码替换,我找到了p问题,是renderTo。但我还是找不到解决方案,你能再看一次我编辑的问题吗?@Expertwannabe不使用renderTo。直接将其放入所有者组件的项目数组中抱歉再次询问,但我还是不明白。你能再解释一点细节吗?@Expertwannabe你能举个例子吗您想插入网格?还是它是一个普通的html元素?@Expertwannabe您不能将其呈现到表中,它需要是一个div!