1

会社のウェブサイトを開発するために、数日前にYiiを学んでいます。現在、Yii のページネーションに問題があり、本当にあなたの助けが必要です。

現在、私は Yii ページネーションを作成できます。ただし、ページネーション領域以外にボタンを作成する必要があります。そのボタンをクリックするたびに、次のページまたは前のページをロードするために ajax が呼び出されます (現在のページが最後のページの場合)。

これが私のモデルです:

public function getListDesc()
{
    $arrPlace = array(0 => '--- --- --- ---');  
    $criteria=new CDbCriteria;
    $criteria->select='t.*,pi.path path';
    $criteria->join='JOIN places_images pi ON t.id=pi.places_id';
    $criteria->group = 't.id';
    $criteria->compare('t.deleted', '<>1', false);
    $criteria->compare('t.status',1);
    $criteria->compare('outlet','Outlet 1');
    $criteria->order = 't.id DESC';
    return new CActiveDataProvider('Places', array(
        'criteria'=>$criteria,
        'pagination' => array(
        'pageSize' => 2
        )
    ));
}

これは、そのモデルと呼ばれる私のインデックス ページの一部です。

<?php                               
    $this->widget('zii.widgets.CListView', array(
       'id' => 'places-list-right',
       'dataProvider'=> Places::model()->getListAsc(),
        'summaryText'=>'',
        'pager' => array(
        'header' => '',
        'prevPageLabel' => '<<',
        'nextPageLabel' => '>>',
        ),                       
      'itemView'=>'_fea_oulet',)
    );
?>

_fea_oulet.php ファイルは次のとおりです。

<div class="place_img" id="<?=$data->id?>">
        <div class="plusimage">
            <a href="javascript:void(0);" onclick="randnew();">
                <img alt="<?=$data->id?>" src="<?php echo Yii::app()->request->baseUrl; ?>/images/9life-show-more-images.png" style="border:none;border-radius:0;-webkit-border-radius: 0; -moz-border-radius:0">
            </a>
        </div>
        <?php echo CHtml::image("timthumb.php?src=".$data->path."&w=294&h=294&zc=1&q=100",$data->title);?>
        <div class="featitle">
            <h3><span><?php 
                    if(strlen($data->title) > 30) {
                        echo CHtml::encode(mb_substr($data->title,0,30,'UTF-8')) . '...';
                    }
                    else{
                        echo CHtml::encode($data->title);
                    }
                ?></span>
                <a href="javascript:void(0);" class="plusinfo"><img src="<?php echo Yii::app()->request->baseUrl; ?>/images/9life-show-more-green.png" style="border:none;border-radius:0;-webkit-border-radius: 0; -moz-border-radius:0"></a>
            </h3>
        </div>

    </div>

どんな助けでも大歓迎です。

ありがとう、

4

1 に答える 1

0

CLinkPagerクラスをオーバーライドし、次のようにページャープロパティを指定しMyLinkPagerて、CListViewウィジェットの呼び出しで独自の実装を使用できます。

$this->widget('zii.widgets.CListView', array(
    'id' => 'places-list-right',
    'dataProvider' => Places::model()->getListAsc(),
    'summaryText' => '',
    'pager' => array(
        'class' => 'MyLinkPager',
        'header' => '',
        'prevPageLabel' => '<<',
        'nextPageLabel' => '>>',
    ),                       
    'itemView' => '_fea_oulet'
));

run()のメソッドCLinkPagerは、ページャー ボタンのレンダリングが行われる場所であるため、このメソッドを直接オーバーライドできます。または、他のページ ボタンと一緒に表示する場合は、カスタム ボタンを配列に追加してcreatePageButtons()メソッドをオーバーライドできます。$buttons

于 2013-04-12T09:35:59.773 に答える