Zend 框架与 dojo
Posted
技术标签:
【中文标题】Zend 框架与 dojo【英文标题】:Zend framework with dojo 【发布时间】:2011-12-15 23:21:16 【问题描述】:我正在使用 zend 框架开发应用程序,我想添加 dojo 框架。 我做了以下事情: 引导程序.php:
public function _initViewHelpers()
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$view->addHelperPath('Zend/Dojo/View/Helper',
'Zend_Dojo_View_Helper');
$view->dojo()->enable();
我的布局.phtml
<?php echo $this->doctype() ?>
<html>
<head>
<?php echo $this->headTitle() ?>
<?php echo $this->headMeta() ?>
<?php echo $this->headLink() ?>
<?php echo $this->headStyle() ?>
<?php if ($this->dojo()->isEnabled())
$this->dojo()->setLocalPath('/js/dojo/dojo.js')
->addStyleSheetModule('dijit.themes.claro');
echo $this->dojo();
?>
<?php echo $this->headScript() ?>
</head>
<body class="claro">
<?php echo $this->layout()->content ?>
<?php echo $this->inlineScript() ?>
</body>
最后是我的 index.phtml :
<script type="text/javascript">
dojo.addOnLoad(function()
// our test data store for this example:
var store4 = new dojo.store.JsonRest(
target: '/guestbook/test'
);
storeData = new dojo.data.ItemFileReadStore(
data:store4
);
// set the layout structure:
var layout4 = [
field: 'Title',
name: 'Title of Movie',
width: '200px'
,
field: 'Year',
name: 'Year',
width: '50px'
,
field: 'Producer',
name: 'Producer',
width: 'auto'
];
// create a new grid:
var grid4 = new dojox.grid.DataGrid(
query:
Title: '*'
,
store: storeData,
clientSort: true,
rowSelector: '20px',
structure: layout4
,
document.createElement('div'));
// append the new grid to the div "gridContainer4":
dojo.byId("gridContainer4").appendChild(grid4.domNode);
// Call startup, in order to render the grid:
grid4.startup();
);
<div id="gridContainer4" style="width: 100%; height: 100%;">
</div>
<?php // setup required dojo elements:
$this->dojo()->enable()
->setDjConfigOption('parseOnLoad', true)
->requireModule('dojo.store.JsonRest')
->requireModule('dojo.data.ObjectStore')
->requireModule('dojo.data.ItemFileReadStore')
->requireModule('dojox.data.QueryReadStore')
->requireModule('dojox.grid.DataGrid')
->addStyleSheet('/js/dojox/grid/resources/claroGrid.css')
->addStyleSheet('/js/dojox/grid/resources/Grid.css'); ?>
当我尝试访问页面 localhost/guestbook 时,页面已呈现但没有数据网格,就像未启用 javascript... url /guestbook/test 返回一个 json 对象。 在 firebug 中,没有 javascript 错误,dojo.js 已加载,dojo 模块和 css 也已加载。 我不明白发生了什么! 谢谢:)
【问题讨论】:
【参考方案1】:您正在创建网格并将其放入未附加的 div 中。相反,附加网格 gridContainer4
// create a new grid:
var grid4 = new dojox.grid.DataGrid(
query:
Title: '*'
,
store: storeData,
clientSort: true,
rowSelector: '20px',
structure: layout4
,
dojo.byId("gridContainer4"));
【讨论】:
以上是关于Zend 框架与 dojo的主要内容,如果未能解决你的问题,请参考以下文章