比如说你admin页面的CGridView,在数据源中的dataProvider返回前设置一下,
model层代码
$dataProvider=new CActiveDataProvider($this, array('criteria'=>$criteria));
$dataProvider->getPagination()->pageSize=5;//你想每页显示的条数
return $dataProvider;
controller层代码
$this->render('admin',array(
'model'=>$dataProvider
));
view层代码
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'sys-order-grid',
'dataProvider'=>$model,
本文实例讲述了Yii列表定义与使用分页方法。分享给大家供大家参考,具体如下:
方法一:控制器定义
12345678910111213function
actionIndex(){
$criteria
=
new
CDbCriteria();
$count
=Article::model()->
count
(
$criteria
);
$pages
=
new
CPagination(
$count
);
// 返回前一页
$pages
->pageSize=10;
$pages
->applyLimit(
$criteria
);
$models
= Post::model()->findAll(
$criteria
);
$this
->render(
'index'
,
array
(
'models'
=>
$models
,
'pages'
=>
$pages
));
}
视图定义:
1234567<?php
foreach
(
$models
as
$model
): ?>
// 显示一个模型
<?php
endforeach
; ?>
// 显示分页
<?php
$this
->widget(
'CLinkPager'
,
array
(
'pages'
=>
$pages
,
)) ?>
方法二:控制器定义:
12345678910111213141516public
function
actionIndex()
{
$dataProvider
=
new
CActiveDataProvider(
'News'
,
array
(
'criteria'
=>
array
(
'condition'
=>
'status=1'
,
'order'
=>
'create_time DESC'
,
'with'
=>
array
(
'author'
),
),
'pagination'
=>
array
(
'pageSize'
=>20,
),
));
$this
->render(
'index'
,
array
(
'dataProvider'
=>
$dataProvider
,
));
}
视图文件:
1234<?php
$this
->widget(
'zii.widgets.CListView'
,
array
(
'dataProvider'
=>
$dataProvider
,
'itemView'
=>
'_view'
,
)); ?>
方法三:视图文件
12345678910111213141516171819202122232425262728293031323334<?php
$this
->widget(
'zii.widgets.grid.CGridView'
,
array
(
'id'
=>
'news-grid'
,
'dataProvider'
=>
$model
->search(),
'filter'
=>
$model
,
'template'
=>
'{items}{summary}{pager}'
,
<span style=
"white-space:pre"
> </span>
'pager'
=>
array
(
'class'
=>
'CLinkPager'
,
'header'
=>
'分页:'
,
'prevPageLabel'
=>
'上一页'
,
'nextPageLabel'
=>
'下一页'
,
),
<span style=
"white-space:pre"
> </span>
'summaryText'
=>
'页数:{pages}/{page}页'
,
<span style=
"white-space:pre"
> </span>
'columns'
=>
array
(
'id'
,
array
(
'name'
=>
'title'
,
'htmlOptions'
=>
array
(
'width'
=>
'20%'
),
'value'
=>
'mb_substr($data->title,0,10,"utf-8")'
,
),
array
(
'name'
=>
'content'
,
'htmlOptions'
=>
array
(
'width'
=>
'20%'
),
'value'
=>
'mb_substr(strip_tags($data->content),0,10,"utf-8")'
,
),
array
(
'name'
=>
'type'
,
'value'
=>
'News::model()->getNewsType($data->type)'
,
),
'user'
,
array
(
'name'
=>
'status'
,
'value'
=>
'News::model()->getNewsStatus($data->status)'
,
),
array
(
'class'
=>
'CButtonColumn'
,
),
),
));
数据模型类:
1234567891011121314151617public
function
search()
{
$criteria
=
new
CDbCriteria;
$criteria
->compare(
'id'
,
$this
->id);
$criteria
->compare(
'title'
,
$this
->title,true);
$criteria
->compare(
'content'
,
$this
->content,true);
$criteria
->compare(
'type'
,
$this
->type);
$criteria
->compare(
'user'
,
$this
->user,true);
$criteria
->compare(
'status'
,
$this
->status);
$criteria
->compare(
'create_data'
,
$this
->create_data,true);
return
new
CActiveDataProvider(
$this
,
array
(
'criteria'
=>
$criteria
,
'pagination'
=>
array
(
'pageSize'
=>50,
),
));
}