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指定它的pager属性,如下所示:

$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 回答