0

誰かがajaxを使用してビューで複数のzendページネーションを達成するのを手伝ってもらえますか?シングルページネーションは問題なく達成できましたが、今は1回以上実行したいと思います。

これは私の設定です:-

ブートストラップに追加:-

public function _initPaginator(){
    Zend_Paginator::setDefaultScrollingStyle('Sliding');
    Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_control.phtml');   
}

'pagination_control.phtml'は、zendフレームワークのマニュアルから抜粋したものです。

コントローラに追加:-

public function init()
{
    parent::init();

    $ajaxContext = $this->_helper->getHelper('AjaxContext');
    $ajaxContext->addActionContext('view', 'html')
                ->initContext();
}

これをコントローラーアクションに追加しました:-

public function viewAction()
{

    $query = $this->_em->createQueryBuilder()
       ->select('t')
       ->from('Ajfit\Entity\Ticket', 't')
       ->where('t.engineerFk = :engineer')
       ->orderBy('t.dt', 'desc')
       ->setParameter('engineer', $engineer)
       ->getQuery();

    $paginator =  new Paginator($query);
    $adapter->getIterator();

    $zend_paginator = new \Zend_Paginator($adapter);
    $zend_paginator->setItemCountPerPage(3)
                   ->setCurrentPageNumber($this->_getParam('page'));

    $this->view->ticketPaginator = $zend_paginator;
}

これをビューに追加しました:-

<div>
    <div id="ticket-history">
       <?php 
             echo $this->render('profile/view.ajax.phtml'); 
         ?>
       </div> 
</div>

<script>
    $(document).ready(function() {
        $('.pagination-control').find('a').live('click', function(e) { 
            var link = $(this); 
            $('#ticket-history').load(link.attr('href'), { format: 'html' }); 
            return false;
        });
    });
</script>

私の'profile/ view.ajax.phtml'スクリプトには次のものが含まれています:-

<?php

     echo '<table border="0" width="100%" cellspacing="3" cellpadding="3"><tr>';

     foreach($this->ticketPaginator as $ticket){
         echo '<td>' . $ticket->getSubject() . '</td>';
     }

     echo '</tr></table>';
 ?>

<?php 
    echo $this->paginationControl($this->ticketPaginator);
?>

これはすべて正常に機能しますが、別の教義エンティティのこのビューに2番目または3番目のページネーターを追加するにはどうすればよいでしょうか。

どんな助けでも大いに感謝されるでしょう。

ありがとう

アンドリュー

4

2 に答える 2

1

そのためには、複数を使用する必要がありaddActionContextますinit()

    $this->_helper->ajaxContext->addActionContext('view', 'html')->initContext();
    $this->_helper->ajaxContext->addActionContext('list', 'html')->initContext();

続行できます

listAction()パギネーターのようにコントローラーにアクションを追加し、ファイルを作成list.ajax.phtmlし、その中に必要なコードを追加します

于 2012-06-15T14:11:47.867 に答える
0

この問題は、ページネーションリンクを操作して、他のアクションを呼び出せるようにすると解決できます。

次に例を示します。ビューパーツでは、paginationControlメソッドの4番目のパラメーターを使用して、別のアクションを参照するリンクを定義できます。次に、このリンクをで呼び出す必要がありpagination_control.phtmlます。

于 2012-10-10T15:36:32.893 に答える