微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Yii2框架之ListView小部件的使用方法

ListView是yii框架中类似GridView,也是用于展示多条数据的小部件,相比GridView,ListView可以更加灵活地设置数据展示的格式。

下面以我自己做的一个使用ListView来展示数据的例子,来简单讲解一下ListView小部件的使用。

首先需要在控制器中new一个数据提供器,传给视图,示例代码如下:

Diary::find()->orderBy('day'),'pagination' => [//分页 'pagesize' => 4 ] ]); return $this->render('index',[ 'dataProvider' => $dataProvider ]); }

接下来就是在视图文件中使用ListView来展示数据了,示例代码如下:

rush:PHP;"> $dataProvider,//数据提供器 'itemView' => '_diary',//指定item视图(该视图文件与当前视图在同一个目录下) 'viewParams' => [//传参数给每一个item 'moodCfg' => Mood::getAll() ],'layout' => '{items}
',//整个ListView布局 'itemOptions' => [//针对渲染的单个item 'tag' => 'div','class' => 'col-lg-3' ],/* 'options' => [//针对整个ListView 'tag' => 'div',*/ 'pager' => [ //'options' => ['class' => 'hidden'],//关闭分页认开启) /* 分页按钮设置 */ 'maxButtonCount' => 5,//最多显示几个分页按钮 'firstPageLabel' => '首页','prevPageLabel' => '上一页','nextPageLabel' => '下一页','lastPageLabel' => '尾页' ] ]);?>

这里说明一下,由于ListView和GridView继承于同一个父类BaseListView,所以有很多设置参数是一样的,可以通过参考GridView的参数设置来设置ListView。

最后就是在ListView的'itemView'参数指定的视图文件中来编写每一条数据的展示格式了,示例代码如下:

rush:xhtml;">
title ? $model->title : '(无题)') ?>

<p style="font-size:13px">
<span style="color:orangered"><?= date('Y.m.d',$model->day) ?>

<span style="color:#999">心情:<?= $moodCfg[$model->mood] ?>//这里访问ListView的'viewParams'参数传过来的参数$moodCfg

<div style="margin:15px 0">

<?php echo HtmlPurifier::process(mb_substr($model->content,25).'......'); ?>

<p class="info">
添加:<?= date('Y-m-d H:i:s',$model->created_at) ?>

最后修改:<?= date('Y-m-d H:i:s',$model->updated_at) ?>

<div style="text-align:right">
<?= Html::a('<span class="glyphicon glyphicon-eye-open">',['view','id' => $model->id],['title' => '查看']) ?>
<?= Html::a('<span class="glyphicon glyphicon-pencil">',['upcreate',['title' => '修改']) ?>
<?= Html::a('<span class="glyphicon glyphicon-trash">',['delete',[
'title' => '删除','data' => [
'confirm' => '您确定真的要删除 '.date('Y年m月d日',$model->day).' 的日记吗?','method' => 'post',]
]) ?>

最后的最后,效果图展示时间(略丑,勿怪):

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐