ext js网格示例

时间:2013-12-07 00:41:36

标签: extjs grid referenceerror

首先,抱歉我的英语不是很好。

问题: 我需要用php运行ExtJS Grid。目前我想至少运行ext js网格(不用php脚本生成json)。

顺便说一下,我在这个例子中使用过这篇文章: http://extjstutorial.info/extjs-tutorial-paging-grid-with-php-and-mysql/24

我下载了ext js库,将其解压缩到我的站点的根目录:/ public / extjs /。之后,我在此脚本中包含了部分所需文件:

<head>
...
<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all.js"></script>
<script type="text/javascript" src="js/array-grid.js"></script>
...
</head>

使用以下内容在/ js /中创建文件'array-grid.js':

Ext.onReady (function () {
var sampleData = [
    [1,'Monkey D Luffy','Captain','I will become the pirate king'],
    [2,'Roronoa Zoro','Swordman','Become the greatest swordman'],
    [3,'Sanji','Cook','Find all blue'],
    [4,'Usopp','Sniper','Become the greatest warrior'],
    [5,'Nami','Navigator','Draw map of the world']
];

// create the data store
var store = new Ext.data.SimpleStore({
    fields: [
        {name: 'id', type: 'int'},
        {name: 'name'},
        {name: 'position'},
        {name: 'ambition'}
    ]
});

// load data

store.loadData(sampleData);

// create the grid
var grid = new Ext.grid.GridPanel({
    store: store,
    columns: [
        {id:'id',header: 'ID', width: 30, sortable: true, dataIndex: 'id'},
        {header: 'Name', width: 100, dataIndex: 'name'},
        {header: 'Position', width: 100, dataIndex: 'position'},
        {header: 'Ambition', width: 250, dataIndex: 'ambition'}
    ],
    stripeRows: true,
    height:180,
    width:500,
    title:'Straw Hats Crew'
});

// render grid to the grid-example element (see p array-grid.html)
grid.render('grid-example');        
});

在视图中添加:

<div id="grid-example"></div>

之后,当我尝试加载页面时没有发生任何事情,网格没有显示。 萤火虫说: http://habrastorage.org/storage3/ea4/a4e/2db/ea4a4e2dbb96c76c700be49293d49c10.png (无法上传图片,因为&lt; 10 rep)

它说:参考错误:未定义Ext。

问题是什么?请帮我解决一下:)

所有路径都是正确的!我可以在firebug中检查文件内容(所以路径很好,否则我什么也看不见)

谢谢。

4 个答案:

答案 0 :(得分:1)

有一个快速的事情。您已将不同的ID传递给render方法。

    `grid.render('grid-example');`

并在您的html中,您已将您的ID设置为“paging-grid”。

尝试匹配这两个ID,这样就不会出现dom引用错误。

答案 1 :(得分:1)

Sharikov,

一切都很好,我只是复制了你的代码并且自己尝试了,它运行正常。

Checkout(double和triple)文件夹,文件和路径的名称(这是代码工作的事实)。

代码确实有效。

答案 2 :(得分:0)

您的ExtJS库可能位于错误的位置,因为存在错误“Ext is not defined”。

答案 3 :(得分:0)

好的,现在回答! 我应该包括2个extJS库:

<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all.js"></script>

我使用的是ZF2,必须像这样包含lib:

<?php echo $this->headScript()
    ->prependFile($this->basePath() . '/extjs/ext-all.js')
    ->prependFile($this->basePath() . '/extjs/adapter/ext/ext-base.js')
?>

在代码中它看起来像:

<script type="text/javascript" src="/extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="/extjs/ext-all.js"></script>

检查订单。 Base在zf2中排名第二,但在源头排名第一。他们交换了来源。有问题。