2011-10-21 98 views
4

我已经建立CGridView菜单,我要永远显示寻呼机
(即使它显示所有的数据,不需要导航)
这是当前的代码,我有:
总是在CGridView上显示传呼机?

$this->widget('zii.widgets.grid.CGridView', 
     array('dataProvider'=>$search, 
       'columns' => $columns, 
       'itemsCssClass' => 'list_table', 
       'template' => '{pager}{summary}{items}', 
       'pager' => array(
        'cssFile'=>false, 
        'class'=>'CLinkPager', 
        'firstPageLabel' => '<<', 
        'prevPageLabel' => '<', 
        'nextPageLabel' => '>', 
        'lastPageLabel' => '>>', 
        'header' => '', 
        'footer' => $footer_btns, 
       ), 
       'pagerCssClass' => 'pagination', 
      )); 

回答

1

你可以通过重写renderPager()方法做到这一点 - 但是,似乎寻呼机被放在一起的几个文件,这样一种方式只覆盖一类将做到这一点:

覆盖zii.widgets.grid.CGridView添加您的自定义renderPager()方法类似于:

Yii::import('zii.widgets.grid.CGridView'); 
class MyGrid extends CGridView { 
    public function renderPager() { ... } 
} 

默认的renderPager()函数是here

你想要做的是,寻找最适合寻呼机内容测试线:

if($pager['pages']->getPageCount()>1) { 

,改变了“其他”语句来把你的默认“空”的寻呼机的内容,这可以使用相同的<ul>结构。由于您没有为空白视图提供任何导航,因此如果在多个位置使用该数据,则无需担心该数据。这看起来像这样:

else { 
     echo '<div class="'.$this->pagerCssClass.'">'; 
     ## YOUR CUSTOM "EMPTY PAGER" HTML HERE ## 
     echo '</div>'; 
    } 

您可能还需要定义一些额外的CSS类。在只显示部分分页的页面上(例如第一页和最后一页),可以使用CSS重新定义“.hidden”类。

+0

如何在分页中使用CListPager和CLinkPager,是否有任何参数,或者在renderPager()函数中调用它。以及如何摆脱CLinkPager的“转到页面:”标签。 –

相关问题