【发布时间】:2014-05-28 15:22:40
【问题描述】:
如果我通过“renderTo”参数(参见下面的“b”)向我的面板添加一个按钮,它可以完美运行:
//create div in javascript
var extJSTest = document.createElement('div');
//append to main
mainPanel.appendChild(extJSTest);
//'get' panel through EXT (just adds a wrapper?)
var myDiv = Ext.get(extJSTest);
var b = Ext.create('Ext.Button', {
text: 'Click me!!!!',
renderTo: myDiv,
handler: function() {
alert('You clicked the button!')
}
});
但是,如果,我用以下代码替换“b”(也就是说,我想用网格替换按钮,与 SimpleStore 和一些数据相连)...
var myData = [
['Apple',29.89],
['Ext',83.81]
];
var ds = new Ext.data.SimpleStore({
fields: [
{name: 'company'},
{name: 'price'}
]
});
ds.loadData(myData);
var grid = new Ext.grid.GridPanel({
store: ds,
columns: [
{header: "Company", width: 120, dataIndex: 'company'},
{header: "Price", width: 90, dataIndex: 'price'}
],
renderTo: myDiv,
height: 180,
width: 900,
title: 'List of Packages'
});
我收到此错误:
未捕获的类型错误:无法读取 null 的属性“dom”
在 ext-all-debug 的第 28211 行找到。代码如下所示:
if (!me.container) {
me.container = Ext.get(me.el.dom.parentNode);
}
有人知道我想添加网格时出现什么问题吗?
我的 index.html 看起来像这样:
<script>
Ext.require([
'Ext.data.*',
'Ext.grid.*',
'Ext.tree.*'
]);
Ext.onReady (function () {
//application is built in here
});
</script>
这是一个小提琴:
https://fiddle.sencha.com/#fiddle/693
如果我渲染到 Ext.getBody() 它工作正常,但如果我渲染到我自己的 myDiv 对象,它似乎有问题。
【问题讨论】:
-
你的代码是包裹在
Ext.onReady还是Ext.application中? -
是的......................................
-
你贴的代码好像没问题,问题肯定出在其他地方。分机版?其他控制台错误、警告? Grid here 将自己呈现给现有的 div 没有问题。
-
ExtJS 4.2。没有其他错误
-
我想我需要一个叫做 ext-base.js 的东西
标签: javascript extjs