ListView是yii框架中类似GridView,也是用于展示多条数据的小部件,相比GridView,ListView可以更加灵活地设置数据展示的格式。
下面以我自己做的一个使用ListView来展示数据的例子,来简单讲解一下ListView小部件的使用。
首先需要在控制器中new一个数据提供器,传给视图,示例代码如下:
?
|
1
2
3
4
5
6
7
8
9
10
11
|
public function actionIndex() {
$dataProvider = new ActiveDataProvider([
'query' => Diary::find()->orderBy('day'),
'pagination' => [//分页
'pagesize' => 4
]
]);
return $this->render('index', [
'dataProvider' => $dataProvider
]);
}
|
接下来就是在视图文件中使用ListView来展示数据了,示例代码如下:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?= ListView::widget([
'dataProvider' => $dataProvider,//数据提供器
'itemView' => '_diary',//指定item视图(该视图文件与当前视图在同一个目录下)
'viewParams' => [//传参数给每一个item
'moodCfg' => Mood::getAll()
],
'layout' => '{items}<div class="col-lg-12 sum-pager">{summary}{pager}</div>',//整个ListView布局
'itemOptions' => [//针对渲染的单个item
'tag' => 'div',
'class' => 'col-lg-3'
],
/*
'options' => [//针对整个ListView
'tag' => 'div',
'class' => 'col-lg-3'
],
*/
'pager' => [
//'options' => ['class' => 'hidden'],//关闭分页(默认开启)
/* 分页按钮设置 */
'maxButtonCount' => 5,//最多显示几个分页按钮
'firstPageLabel' => '首页',
'prevPageLabel' => '上一页',
'nextPageLabel' => '下一页',
'lastPageLabel' => '尾页'
]
]);?>
|
这里说明一下,由于ListView和GridView继承于同一个父类BaseListView,所以有很多设置参数是一样的,可以通过参考GridView的参数设置来设置ListView。
最后就是在ListView的'itemView'参数指定的视图文件中来编写每一条数据的展示格式了,示例代码如下:
?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<div class="item">
<h4 style="font-weight:bold"><?= Html::encode($model->title ? $model->title : '(无题)') ?></h4>
<p style="font-size:13px">
<span style="color:orangered"><?= date('Y.m.d', $model->day) ?></span><br>
<span style="color:#999">心情:<?= $moodCfg[$model->mood] ?></span>//这里访问ListView的'viewParams'参数传过来的参数$moodCfg
</p>
<div style="margin:15px 0">
<?php echo HtmlPurifier::process(mb_substr($model->content, 0, 25).'......'); ?>
</div>
<p class="info">
添加:<?= date('Y-m-d H:i:s', $model->created_at) ?><br>
最后修改:<?= date('Y-m-d H:i:s', $model->updated_at) ?>
</p>
<div style="text-align:right">
<?= Html::a('<span class="glyphicon glyphicon-eye-open"></span>', ['view', 'id' => $model->id], ['title' => '查看']) ?>
<?= Html::a('<span class="glyphicon glyphicon-pencil"></span>', ['upcreate', 'id' => $model->id], ['title' => '修改']) ?>
<?= Html::a('<span class="glyphicon glyphicon-trash"></span>', ['delete', 'id' => $model->id], [
'title' => '删除',
'data' => [
'confirm' => '您确定真的要删除 '.date('Y年m月d日', $model->day).' 的日记吗?',
'method' => 'post',
]
]) ?>
</div>
</div>
|
最后的最后,效果图展示时间(略丑,勿怪):
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。
原文链接:http://www.cnblogs.com/wujuntian/p/7424074.html
相关文章
猜你喜欢
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
- 64M VPS建站:能否支持高流量网站运行? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-06-04 35
-
2025-05-25 41
-
2025-05-27 15
-
2025-05-25 33
-
2025-06-04 21
热门评论


