【问题标题】:Zend framework with dojoZend 框架与 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 也已加载。 我不明白发生了什么! 谢谢:)

【问题讨论】:

    标签: php javascript zend-framework dojo javascript-framework


    【解决方案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"));
    

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多