Yii2的Gridview应用技巧补充
Yii2框架下的Gridview通常用来展示一张DB表中的数据,十分方便。这里只说一下经常要用到的一些小技巧,其实大多数官方文档都是有的,只是有可能需要在多个文档里。
自动创建的gridview示例。

1. 不显示Gridview自带的记录序列。
删除视图文件里下面这一行代码。
['class' => 'yii\grid\SerialColumn']
2.字段名称居中对齐
视图里自定义headerOptions。
"headerOptions" => ['style' => 'text-align:center;'],
3.字段值居中对齐
视图里自定义contentOptions。
"contentOptions" => ['style' => 'text-align:center;'],
4.字段不允许点击排序
视图里自定义enableSorting。
'enableSorting' => false,
5.字段不允许搜索
Search模型里rules return值去除对应值。例如去掉分类ID以及优先级两个字段的搜索功能。
class MaterialscatSearch extends Materialscat
{
/**
* @inheritdoc
*/
public function rules()
{
return [
//[['cat_id', 'status', 's'], 'integer'],
[['status'], 'integer'],
[['cat_name'], 'safe'],
];
}
6.状态栏目显示对应值的中文含义
数据库里存放的是0和1,0代表禁用,1代表启用。
数据模型添加中文状态的静态数组和取值方法
class Materialscat extends \yii\db\ActiveRecord
{
public static $allStatus = [
'0' => '禁用',
'1' => '启用'
];
...
public function getStatusStr()
{
return Yii::t('app',self::$allStatus[$this->status]);
}
然后在视图里自定义value。
[
'attribute' =>'status',
'enableSorting' => false,
'value' => 'StatusStr', //$model->StatusStr = $model->getStatusStr();
"headerOptions" => ['style' => 'text-align:center;width:10%;'],
"contentOptions" => ['style' => 'text-align:center;'],
],
7.状态栏搜索变成下拉搜索样式,并且默认选中项提示为‘全部’
视图自定义filter以及filterInputOptions。
[
'attribute' =>'status',
'enableSorting' => false,
'value' => 'StatusStr',
'filter' => Materialscat::$allStatus,
'filterInputOptions' => ['class' => 'form-control', 'id' => null, 'prompt' => '全部'],
"headerOptions" => ['style' => 'text-align:center;width:10%;'],
"contentOptions" => ['style' => 'text-align:center;'],
],
最终界面如下:

Yii2的Gridview应用技巧补充的更多相关文章
- ASP.NET中Gridview一些技巧
ASP.NET中Gridview一些技巧 一.后台覆盖掉Gridview中自动填充的值 我们可以再Gridview中的事件触发的过程中修改其中的值,而这些值将会在具体的运行过程中覆盖掉那些自动属性.这 ...
- 关于yii2的gridview关联搜索步骤
在使用yii2构建搜索视图,经常都会使用到gridview这个组件,这个组件十分强大,通过一定的配置就能进行关联搜索,下面就是简单的步骤 需求场景:一个车系表,里面存放在品牌表的id,现在要用品牌名字 ...
- Yii2中GridView
Yii2 GridView与dropdownList结合的用法 http://www.yiichina.com/tutorial/473 <?=$form->field($model, ' ...
- yii2使用小知识(连续补充)
1,打印ar或者query的原始sql: $query = (new \yii\db\Query())->select(['a.username','b.item_name'])->fro ...
- Yii2.0 GridView 新增添加按钮
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'col ...
- yii2的GridView和ActiveDataProvider具体使用
1.控制器中(以User模块的列表为例): 第一步: use backend\models\User;use yii\data\ActiveDataProvider; 第二步: public func ...
- DevExpress GridView使用技巧之列标题点击事件
在这里使用GridView的MouseDown事件.这里同样使用的是GridHitInfo来获取点击位置的信息,来判断是否在列标题上.GridHitInfo根据鼠标点击的x.y坐标获取该点的相关信息, ...
- yii2之GridView小部件
GridView小部件用于展示多条数据的列表.GridView小部件的使用需要数据提供器即yii\data\ActiveDataProvider的实例作为参数,所以 第一步就是要在控制器方法中创建这个 ...
- Yii2框架GridView自带导出功能最佳实践
1. 导出excel的实现方法 (1)使用phpexcel封装工具类导出excel (2)使用爬虫爬取页面再处理封装工具类导出excel (3)使用页面渲染后处理html添加头部信息生成excel文件 ...
随机推荐
- Android: 在native中访问assets全解析
本文总结在Android Native C++开发中访问APK中的assets资源的方法 在CMake中添加相关NDK LIB的 依赖 因为我们接下来用到的一些函数实现在NDK库libandroid. ...
- linux下可执行bin程序提示not found/no such file or directory/not executable
我们经常在执行二进制bin程序时,会遇到提示not found/no such file or directory/not executable等错误信息,在什么情况下会出现这种问题呢,我们一起罗列下 ...
- 搭建MHA时 yum 安装perl模块提示 baseurl 错误
今天在搭建MySQL MHA 安装MHA node所需的perl模块(DBD:mysql)时遇到了一个小的错误,如果思路不对的话,还是产生不少麻烦. 现梳理记录下来. 问题现象 执行的命令 yum ...
- c/c++ linux 进程间通信系列7,使用pthread mutex
linux 进程间通信系列7,使用pthread mutex #include <stdio.h> #include <stdlib.h> #include <unist ...
- 局部敏感哈希(Locality-Sensitive Hashing, LSH)
本文主要介绍一种用于海量高维数据的近似最近邻快速查找技术——局部敏感哈希(Locality-Sensitive Hashing, LSH),内容包括了LSH的原理.LSH哈希函数集.以及LSH的一些参 ...
- MySQL 5.7.13 的一个BUG
mysql今天从5.6切到5.7,在测试环境中,日志是全部打印的,发现打了一个警告: Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for ...
- Storm入门(三)HelloWorld示例
一.配置开发环境 storm有两种操作模式: 本地模式和远程模式.使用本地模式的时候,你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来; 用远程模式的时候你提交的t ...
- Nginx 配置 和安装
Nginx 博客 web服务器和web框架的关系 web服务器(nginx): 接收HTTP请求(例如www.pythonav.cn/xiaocang.jpg)并返回数据 web服务器,仅仅就是 接收 ...
- 文本分类实战(九)—— ELMO 预训练模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- 【js】this问题
var obj = { a: 10, b: () => { console.log(this.a); // undefined console.log(this); // Window {pos ...