clistview可以用来显示列表,clistview支持使用自定义的view模板显示列表的的记录,因此可以非常灵活的显示数据的表,这点有点像android的listview:-)。
clistview 支持分页和排序,分页和排序支持使用ajax实现从而可以提高页面的响应性能。clistview的使用需要通过dataprovider,通常是使用cactivedataprovider。
本例修改yii framework 开发教程(26) 数据库-active record示例,不过为了显示分页,我们使用customer数据库表,每页显示10条记录。
修改缺省的视图protected/views/site/index.php,使用listview组件。
[php]
widget('zii.widgets.clistview', array(
'dataprovider'=>$dataprovider,
'ajaxupdate'=>false,
'template'=>'{sorter}{pager}{summary}{items}{pager}',
'itemview'=>'_view',
'pager'=>array(
'maxbuttoncount'=>'7',
),
'sortableattributes'=>array(
'firstname',
'lastname',
'country',
),
)); ?>
widget('zii.widgets.clistview', array(
'dataprovider'=>$dataprovider,
'ajaxupdate'=>false,
'template'=>'{sorter}{pager}{summary}{items}{pager}',
'itemview'=>'_view',
'pager'=>array(
'maxbuttoncount'=>'7',
),
'sortableattributes'=>array(
'firstname',
'lastname',
'country',
),
)); ?>
参数template 配置页面显示的模板,支持的参数有 {summary}, {sorter}, {items} 和{pager},分别对应于listview的汇总,排序,列表项,分页控制。
参数itemview 指明每个列表项对应的view显示。本例使用site/_view.php ,定义如下:
[php]
firstname . ' ' . $data->lastname);?>
getattributelabel('company')); ?>:
company); ?>
getattributelabel('address')); ?>:
format->formaturl($data->address); ?>
getattributelabel('country')); ?>:
country); ?>
getattributelabel('email')); ?>:
format->formatemail($data->email); ?>
firstname . ' ' . $data->lastname);?>
getattributelabel('company')); ?>:
company); ?>
getattributelabel('address')); ?>:
format->formaturl($data->address); ?>
getattributelabel('country')); ?>:
country); ?>
getattributelabel('email')); ?>:
format->formatemail($data->email); ?>
然后修改sitecontroller的indexaction方法:
[php]
public function actionindex()
{
$dataprovider=new cactivedataprovider('customer', array(
'pagination'=>array(
'pagesize'=>10,
'pagevar'=>'page',
),
'sort'=>array(
'defaultorder'=>'lastname',
),
));
$this->render('index',array(
'dataprovider'=>$dataprovider,
));
}
public function actionindex()
{
$dataprovider=new cactivedataprovider('customer', array(
'pagination'=>array(
'pagesize'=>10,
'pagevar'=>'page',
),
'sort'=>array(
'defaultorder'=>'lastname',
),
));
$this->render('index',array(
'dataprovider'=>$dataprovider,
));
}
显示结果如下:
http://www.bkjia.com/phpjc/477838.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/477838.htmltecharticleclistview可以用来显示列表,clistview支持使用自定义的view模板显示列表的的记录,因此可以非常灵活的显示数据的表,这点有点像android的li...