3

私は symfony プロジェクトに取り組んでおり、長いリスト用のページング システムを作成する必要がありました。それらを生成するために sfPropelPager プラグインを使用しました。私はこのように使用しています:

<div>すべてのページを異なるタグで印刷し、最初のページのみを表示します。次に、JavaScript関数を使用して、次、前、...ボタンをクリックすると他のページが表示されます。

ページを生成するために使用する関数は次のとおりです。

    $pager = new sfPropelPager('SysLogTbl',sfConfig::get('sfPropelPagerLines'));
    $c = new Criteria();
    $c->add('codigo_maestro',$this->getCodigoMaestro());
    $c->add('codigo_registro',$id);
    $c->addDescendingOrderByColumn('fecha_log');
    $pager->setCriteria($c);
    $pager->init();
    return $pager;`

ビューコードは次のとおりです。

        foreach($pager->getLinks() as $page){

        echo'<div id="logpage'.$page.'" class="logpages" style="width:100%;';
        if($page!=1){echo ' display:none';}
        echo '">';

        $pager->setPage($page);
        $pager->init();
        $results= $pager->getResults();

        echo '<table class="none_list" id="list">';
        echo "<thead>";
        echo "<td width='8%'>Usuario</td><td width='8%'>Acci&oacute;n</td>";
        echo "<td width='13%'>Campo</td><td width='25%'>Valor Antiguo</td>";
        echo"<td width='25%'>Nuevo valor</td><td width='21%'>TimeStamp</td>";
        echo "</thead>";
        foreach($results as $log){
            echo '<tr id="'.$log->getCodigoLog().'" >';

            < here goes each entry in the page display, not relevant >


        }
        echo '</table>';

        echo "<div style='float:left'>";
        echo image_tag('first.png',array('class'=>"first"));
        echo image_tag('previous.png',array('class'=>"previous"));
        echo "</div>";
        foreach($lista->getLinks() as $page){
            echo "<div class='logindex' id='".$page."' style='float:left; cursor:pointer'>";
            if($page == $lista->getPage()){
                echo "<b>".$page."</b>";
            }else{
                echo $page;
            }
            echo "</div>";
        }
        echo image_tag('next.png',array('class'=>"next"));
        echo image_tag('last.png',array('class'=>"last"));
    echo '</div>';
    $lista->setCursor($lista->getNextPage());

}
$lista->setCursor($lista->getFirstPage());?>

問題は、sfPropelPager が最大 5 ページしか生成しないことです。

すべてのページを表示するには、これをどこで構成する必要があるか知っていますか?? ありがとう!

4

2 に答える 2

3

sfPagerのソースを確認すると、必要なリンクの数を示す$nb_linksパラメーターがあることがわかります。デフォルトは 5 です。

于 2011-11-02T15:15:00.427 に答える
0

ページネーションは非常に簡単です - これは Jobeet チュートリアルの素晴らしい例です -> http://www.symfony-project.org/jobeet/1_4/Propel/en/07#chapter_07_list_pagination

于 2011-11-02T14:58:27.480 に答える