Yii Framework 开发教程(30) Zii组件-ListView 示例

2023-11-13



CListView可以用来显示列表,CListView支持使用自定义的View模板显示列表的的记录,因此可以非常灵活的显示数据的表,这点有点像Android的ListView:-)。

CListView 支持分页和排序,分页和排序支持使用AJAX实现从而可以提高页面的响应性能。CListView的使用需要通过DataProvider,通常是使用CActiveDataProvider。

本例修改Yii Framework 开发教程(26) 数据库-Active Record示例,不过为了显示分页,我们使用Customer数据库表,每页显示10条记录。

修改缺省的视图protected/views/site/index.php,使用ListView组件。

  1. <?php $this->widget('zii.widgets.CListView'array(  
  2.     'dataProvider'=>$dataProvider,  
  3.     'ajaxUpdate'=>false,  
  4.     'template'=>'{sorter}{pager}{summary}{items}{pager}',  
  5.     'itemView'=>'_view',  
  6.     'pager'=>array(  
  7.                 'maxButtonCount'=>'7',  
  8.                 ),  
  9.             'sortableAttributes'=>array(  
  10.                 'FirstName',  
  11.                 'LastName',  
  12.                 'Country',  
  13.                 ),  
  14. )); ?>  
<?php $this->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 ,定义如下:

  1. <div class="item">  
  2.   
  3. <h3><?php echo CHtml::encode($data->FirstName . ' ' . $data->LastName);?></h3>  
  4.   
  5. <b><?php echo CHtml::encode($data->getAttributeLabel('Company')); ?>:</b>  
  6. <?php echo CHtml::encode($data->Company); ?>  
  7. <br />  
  8.   
  9. <b><?php echo CHtml::encode($data->getAttributeLabel('Address')); ?>:</b>  
  10. <?php echo Yii::app()->format->formatUrl($data->Address); ?>  
  11. <br />  
  12.   
  13. <b><?php echo CHtml::encode($data->getAttributeLabel('Country')); ?>:</b>  
  14. <?php echo CHtml::encode($data->Country); ?>  
  15. <br />  
  16.   
  17. <b><?php echo CHtml::encode($data->getAttributeLabel('Email')); ?>:</b>  
  18. <?php echo Yii::app()->format->formatEmail($data->Email); ?>  
  19. <br />  
  20.   
  21. </div>  
<div class="item">

<h3><?php echo CHtml::encode($data->FirstName . ' ' . $data->LastName);?></h3>

<b><?php echo CHtml::encode($data->getAttributeLabel('Company')); ?>:</b>
<?php echo CHtml::encode($data->Company); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('Address')); ?>:</b>
<?php echo Yii::app()->format->formatUrl($data->Address); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('Country')); ?>:</b>
<?php echo CHtml::encode($data->Country); ?>
<br />

<b><?php echo CHtml::encode($data->getAttributeLabel('Email')); ?>:</b>
<?php echo Yii::app()->format->formatEmail($data->Email); ?>
<br />

</div>

然后修改SiteController的indexAction方法:

  1. public function actionIndex()  
  2. {  
  3.   
  4.     $dataProvider=new CActiveDataProvider('Customer'array(  
  5.         'pagination'=>array(  
  6.             'pageSize'=>10,  
  7.             'pageVar'=>'page',  
  8.         ),  
  9.                 'sort'=>array(  
  10.                     'defaultOrder'=>'Lastname',  
  11.                     ),  
  12.                 ));  
  13.     $this->render('index',array(  
  14.         'dataProvider'=>$dataProvider,  
  15.         ));  
  16. }  
public function actionIndex()
{

	$dataProvider=new CActiveDataProvider('Customer', array(
		'pagination'=>array(
			'pageSize'=>10,
			'pageVar'=>'page',
		),
				'sort'=>array(
					'defaultOrder'=>'Lastname',
					),
				));
	$this->render('index',array(
		'dataProvider'=>$dataProvider,
		));
}

显示结果如下:

201212128004

本例下载

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yii Framework 开发教程(30) Zii组件-ListView 示例 的相关文章

随机推荐

  • Unity发布WebGL如何本地打开

    https blog csdn net blastblade article details 81170020
  • 淘宝镜像的使用

    1 切换淘宝镜像 npm config get registry 2 设置淘宝镜像 npm config set registry https registry npmirror com
  • 用java写一个多线程可断点续传的下载方法

    好的 我可以向你提供一个基本的多线程可断点续传的下载方法 首先 你需要创建一个线程类 用于下载文件的指定部分 这个线程类需要记录文件的开始和结束位置 并且在运行时使用这些位置来设置 HTTP 请求的 Range 头部 然后 你可以创建一个主
  • 搭建jeesite开发环境

    jeesite tomcat7 mysql eclipse maven jeesite下载路径 https github com thinkgem jeesite 下载jeesite并解压 在D 01 Projects 06 jeesite
  • 程序员必知的23种设计模式之模板模式

    文章目录 1 模式引出 豆浆制作问题 2 模板方法模式基本介绍 2 1 模板方法模式的原理类图 2 2 模板方法模式的钩子方法 3 方案实现 4 模板方法模式在Spring4框架的应用 5 模板方法模式的注意事项和细节 1 模式引出 豆浆制
  • 拍乐云首发音视频「分组讨论」开放能力,开启线上群聊互动新玩法

    苹果CEO库克近日宣布 因疫情反复 苹果将无限期推迟员工重返办公室计划 疫情常态化之下 在线工作 在线学习 在线娱乐也都变得常态化 我们似乎开始接受这种 All in在线 的模式 并对在线互动的体验提出了更高要求 当我们想要实现一个校招的网
  • java boolean空,Java检查布尔值是否为空

    How do you check if a boolean is null or not So if I know hideInNav is null How do I stop it from further executing Some
  • Jupyterlab使用plotly图片不显示解决方法

    问题 anaconda装好了plotly库 进入lab画图 发现不管怎样都显示空白 无法显示图片 解决方法 这是因为没有安装渲染支持的插件 在命令行输入 首先需要安装nodejs12 0 0以上版本 conda install nodejs
  • Pod 启动时命令和参数 与 dockerfile镜像区别

    主要是记录问题 如下文档 为容器设置启动时要执行的命令和参数 KubernetesDockerfile 中的 CMD 与 ENTRYPOINT sparkdev 博客园 K8s Pod Command 与容器镜像 Cmd 启动优先级详解 腾
  • Intellj IDE出现 java.lang.NoClassDefFoundError:

    在Intellj Idea中 主程序依赖了一个库modules 在模块中有一个dependence选项卡 把相关的依赖库选项的provided改为compile即可
  • python获取上一层文件夹路径

    https www cnblogs com yajing zh p 6807968 html
  • 零基础程序员自学编程的6种方法,你知道吗?

    随着互联网日趋迅猛 编程已经在我们生活当中无处不在了 众所周知 程序员的工资都很不错 于是越来越多的人 都想加入到编程的行业中来 那么如何加入到程序员的行业当中 PHP从入门到放弃 C语言从入门到放弃 Java从入门到放弃 Python从入
  • flutter创建项目指定语言

    每次新建Flutter项目都会去用命令来创建 因为不熟悉android的kottlin语言 每次都会抗拒一下 所以每次创建项目我都会选择去选用我熟悉的Java跟OC语言 直接上方法 注意 现在flutter创建的项目默认是swift跟kot
  • 如何实现在一个 Socket 应用程序中同时支持 IPv4 和 IPv6

    如何实现在一个 Socket 应用程序中同时支持 IPv4 和 IPv6 如何巧妙地设计代码结构 陈 鲁 软件工程师 IBM 孙 妍 软件工程师 IBM 简介 当今的网络主流是 IPv4 网络 但随着 IP 地址的日益短缺 IPv6 网络开
  • JSP页面获取cookie内容

    当使用jsp技术时会用到cookie保存一些信息 在后端逻辑代码设置cookie Cookie name new Cookie uname na Cookie pwd new Cookie upwd pw 设置最大存活时间180s name
  • vue之路由配置中的meta

    仅对以前所学做复习记录使用 meta 数据的元数据 也就是程序员可以自己自定义的一些变量
  • 5G QoS管理及与DRB映射关系

    前言 无线网络是一个等级森严的体系 一直以来 无线资源都是紧张的 因而无线网络上的各种业务所享受的服务也无法平等 网络需要优先保障重要的业务 比如 相比普通上网的数据业务 音视频数据业务的优先级会更高 相比音视频数据业务 语音通话的优先级会
  • JVM对象内存布局

    HotSpot虚拟机中 对象在内存中的存储布局分3部分 对象头 实例数据 对齐填充 一 对象头 对象头包含两部分信息 对象的运行时数据和类型指针 1 对象的运行时数据 对象的运行时数据非常多 主要有哈希码 GC分代年龄 锁状态标志 线程持有
  • VMware虚拟机安装Linux系统教程(图文详解)

    一 安装 VMware 1 VMware虚拟机下载 链接 https pan baidu com s 1TElrJharG7jX25D9QO2Iyw pwd 5a8n 提取码 5a8n 安装 选一下安装地址 一直下一步即可 可能会要求重启电
  • Yii Framework 开发教程(30) Zii组件-ListView 示例

    CListView可以用来显示列表 CListView支持使用自定义的View模板显示列表的的记录 因此可以非常灵活的显示数据的表 这点有点像Android的ListView CListView 支持分页和排序 分页和排序支持使用AJAX实