0

zend で dojo グリッドを実装できないという大きな問題があります。

ここに私のスクリプトがあります

[View]

<?php $this->headLink()->appendStylesheet($this->baseUrl() . '/scirpts/dojo/dojox/grid/resources/claroGrid.css'); ?>
<?php $this->dojo()->enable(); 
    $this->dojo()->requireModule('dojox.data.QueryReadStore')
                     ->requireModule('dojox.grid.DataGrid');
?>
<div id="view-content">
<?php $this->tabContainer()->captureStart('tabcontainer', array(), array('style' => 'width:100%;height:400px;')) ?>

    <?php $this->contentPane()->captureStart('tab1', array(), array('title' => 'User Manager')); ?>

    <script type="text/javascript" >    
      var structure = [ 
            { field: 'id', name: 'UserID', width: '50px' },
            { field: 'username', name : 'User Name', width: '100px' },
            { field: 'email', name : 'E Mail', width: '200px'}
         ]; 
    </script>
    <span dojoType="dojox.data.QueryReadStore" jsId="users" url="/users/loaduser"></span>
    <div id="grid1" dojoType="dojox.grid.DataGrid" store="users" structure="structure"></div> 

    <?php echo $this->contentPane()->captureEnd('tab1'); ?>
<?php echo $this->tabContainer()->captureEnd('tabcontainer'); ?>
</div>

Controller

 public function loaduserAction()
    {
        // Load current data.
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender();

        $user = new Application_Model_Users();
        $users = $user->getUsers();
        $dojoData = new Zend_Dojo_Data('id', $users, 'id');
        echo $dojoData->toJson();
    }

[Layout]

<?php
 if($this->dojo()->isEnabled()) {

        $this->dojo()-> setDjConfigOption('usePlainJson',true)

                  -> addStylesheetModule("dijit.themes.tundra")
                  -> setLocalPath($this->baseUrl('/scripts/dojo/dojo/dojo.js'));

        echo $this->dojo();

    }

?>   

    <body id="page1" class="tundra">

[Bootstrap]

$view = new Zend_View();
    $view->doctype('XHTML1_STRICT');
    $view->navigation = array();
    $view->subnavigation = array();


    $view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper'); 
    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); 
    $viewRenderer->setView($view);
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);

何も表示されず、javascript エラーを何もチェックしませんでした。これは、ネットで見つけた優れたチュートリアルの 1 つですが、何も機能していないようです。私は本当にイライラしています。あなたの助けが必要です!!!

4

1 に答える 1

0

dojox.grid.DataGrid の列名が表示される場合は、取得した json を確認する必要があります。それ以外の場合は、dojox.grid.DataGrid の CSS を確認してください。通常、次のように dojox.grid.DataGrid の幅と高さを明示的に指定する必要があります。

style="width: 800px; height: 500px"
于 2012-05-25T20:32:42.393 に答える