2013-04-12 30 views
1

前幾天我剛剛學習Yii爲開發公司的網站。現在我對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

您可以覆蓋CLinkPager類,並使用自己的實現MyLinkPagerCListView控件的調用指定這樣的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方法的地方是導航按鈕'渲染髮生,所以你可以直接覆蓋這個方法。或者,您可以通過將您的自定義按鈕添加到$buttons陣列來覆蓋createPageButtons()方法,如果您想與其他頁面按鈕一起查看。

+0

哇,太棒了。謝謝Ezze – user2273422