Ajax按钮调用yii分页点击事件

时间:2013-04-12 07:58:32

标签: ajax yii pagination

我几天前正在学习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>

任何帮助都是值得赞赏的。

谢谢,

1 个答案:

答案 0 :(得分: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'
));
<{> 1}} run()方法是寻呼机按钮渲染的地方,因此您可以直接覆盖此方法。或者,如果您希望将其与其他页面按钮一起查看,则可以通过将自定义按钮添加到CLinkPager数组来覆盖createPageButtons()方法。