2013-04-12 3 views
1

Я просто изучаю Yii несколько дней назад разработчику веб-сайта для компании. Теперь у меня есть проблема с разбиением на страницы Yii, и мне действительно нужна ваша помощь.Ajax button call yii pagination click event

В настоящее время я могу сделать разбиение на страницы 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 класс и использовать собственную реализацию 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, если вы хотите увидеть его вместе с другими кнопками страницы.

+0

Ничего себе, это потрясающе. Благодаря Ezze – user2273422