我几天前正在学习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>
任何帮助都是值得赞赏的。
谢谢,
答案 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()方法。