我已经构建了一个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',
));
答案 0 :(得分: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) {
并更改“else”语句以放入默认的“空”分页器内容,该内容可以使用相同的<ul>
结构。由于您没有为空白视图提供任何导航,因此如果在多个位置使用该数据,则无需担心该数据。这可能看起来像:
else {
echo '<div class="'.$this->pagerCssClass.'">';
## YOUR CUSTOM "EMPTY PAGER" HTML HERE ##
echo '</div>';
}
您可能还需要定义一些额外的css类。在仅显示部分分页的页面上(例如,第一页和最后一页),您可以使用CSS重新定义“.hidden”类。