【问题标题】:Ajax button call yii pagination click eventajax按钮调用yii分页点击事件
【发布时间】:2013-04-04 15:58:25
【问题描述】:

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

感谢任何帮助。

谢谢,

【问题讨论】:

    标签: ajax yii pagination


    【解决方案1】:

    您可以覆盖CLinkPager 类并在您的CListView 小部件的调用中使用您自己的实现MyLinkPager,指定它的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'
    ));
    

    CLinkPagerrun() 方法是页面按钮渲染发生的地方,因此您可以直接覆盖此方法。或者,如果您想与其他页面按钮一起查看,您可以通过将自定义按钮添加到 $buttons 数组来覆盖 createPageButtons() 方法。

    【讨论】:

    • 哇,太棒了。谢谢埃兹
    猜你喜欢
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多