Yii1.1 CGridView 简单使用

  1. 配置model文件,返回CActiveDataProvider对象。
public function search()
{$criteria=new CDbCriteria;$criteria->compare('title',$this->title,true);$criteria->compare('type',$this->type);$criteria->compare('addr',$this->addr,true);$criteria->compare('status',$this->status);$criteria->compare('show_time',$this->show_time);$criteria->order = 'order_by,id desc';return new CActiveDataProvider(get_class($this), array('criteria'=>$criteria,'Pagination' => array ('PageSize' => 15 ),));
}
复制代码
  1. 在模板文件中,通过widget使用CGridView小物件。
$this->widget('zii.widgets.grid.CGridView', array());
复制代码

通过dataProvider接收对象。

$this->widget('zii.widgets.grid.CGridView', array('id' => 'post-grid','dataProvider' => $searchModel->search(),
);
复制代码

加上搜索框

'filter' => $searchModel(),model文件,rules属性return加上要搜索的字段:
array('title, type, addr, status, show_time', 'safe', 'on'=>'search'),
复制代码

columns为展示的字段。filter搜索框为下拉菜单。'class'=>'CButtonColumn'为按钮,其中,'view','update','delete'按钮名特殊处理。

'columns'=>array('title',array('name' => 'type','value'=> function($data){return EnquirySetting::dropDown('type',$data->type);},'filter' => EnquirySetting::dropDown('type'),),'addr',array('name' => 'status','value'=> function($data){return EnquirySetting::dropDown('status',$data->status);},'filter' => EnquirySetting::dropDown('status'),),'show_time',array('class'=>'CButtonColumn','template'=>'{edit}{delete}','buttons'=>array('edit' => array('label'=>Yii::t('label', 'update').' ',//按钮名称'url'=>'Yii::app()->createUrl("onlineshop/chat-edit",array("chat_id"=>$data->id))',//按钮跳转地址'visible'=>"UserRolePermissionUtilities::checkUserPagePermission('/xxx/edit', 'w')",//权限控制),'delete' => array('label'=>Yii::t('label', 'delete'),//按钮名称'url' => 'Yii::app()->createUrl("onlineshop/chat-del",array("chat_id"=>$data->id))',//按钮跳转地址'visible'=>"UserRolePermissionUtilities::checkUserPagePermission('/xxx/delete', 'w')",//权限控制),),'deleteConfirmation'=>Yii::t('product','DEL_CONFIRM'),),
),
复制代码

下拉菜单返回

public static function dropDown($column,$value=null){$dropDownList = array('type' => array('1' => 'www','2' => 'wap',),'status' => array('0' => Yii::t("product","CHAT_CLOSE"),'1' => Yii::t("product","CHAT_OPEN"),));if ($value !== null)return array_key_exists($column, $dropDownList) ? $dropDownList[$column][$value] : false;elsereturn array_key_exists($column, $dropDownList) ? $dropDownList[$column] : false;
}
复制代码
附上完整代码

controller

public function actionChatIcon()
{$searchModel = new EnquirySetting();$searchModel->unsetattributes();if(!empty($_REQUEST['EnquirySetting'])){$searchModel->attributes = $_REQUEST['EnquirySetting'];}$criteria = new CDbCriteria();$count = EnquirySetting::model()->count($criteria);$this->render( 'chat-icon',array( 'count'=>$count,'searchModel'=>$searchModel ) );}
复制代码

view

<?phpif (empty($count)) {echo Yii::t('pagecontent',"list_no_message");
} else {
?><div class="div-table" ><?php $this->widget('zii.widgets.grid.CGridView', array('id'=>'post-grid','dataProvider'=>$searchModel->search(),'filter'=>$searchModel,'columns'=>array('title',array('name' => 'type','value'=> function($data){return EnquirySetting::dropDown('type',$data->type);},'filter' => EnquirySetting::dropDown('type'),),'addr',array('name' => 'status','value'=> function($data){return EnquirySetting::dropDown('status',$data->status);},'filter' => EnquirySetting::dropDown('status'),),'show_time',array('class'=>'CButtonColumn','template'=>'{edit}{delete}','buttons'=>array('edit' => array('label'=>Yii::t('label', 'update').' ','url'=>'Yii::app()->createUrl("onlineshop/chat-edit",array("chat_id"=>$data->id))','visible'=>"UserRolePermissionUtilities::checkUserPagePermission('/onlineshop/chaticon', 'w')",),'delete' => array('label'=>Yii::t('label', 'delete'),'url' => 'Yii::app()->createUrl("onlineshop/chat-del",array("chat_id"=>$data->id))','visible'=>"UserRolePermissionUtilities::checkUserPagePermission('/onlineshop/chaticon', 'w')",),),'deleteConfirmation'=>Yii::t('product','DEL_CONFIRM'),),),));?>
</div><?php
}
?>
复制代码

model

class EnquirySetting extends CActiveRecord
{public static function model($className=__CLASS__){return parent::model($className);}public function tableName(){return 'table_name';}public function rules(){return array(array('title, type, addr','required'),array('title, type, addr, status, show_time, order_by','safe'),array('title, type, addr, status, show_time', 'safe', 'on'=>'search'),);}public function attributeLabels(){return array('title' => Yii::t('product', 'CHAT_TITLE'),'type' =>  Yii::t('product', 'CHAT_TYPE'),'addr' =>  Yii::t('product', 'CHAT_ADDR'),'status' =>  Yii::t('product', 'CHAT_STATUS'),'order_by' =>  Yii::t('product', 'CHAT_ORDER_BY'),'show_time' =>  Yii::t('product', 'CHAT_SHOW_TIME'),'created_date' =>  Yii::t('product', 'CHAT_CREATED_DATE'),'created_by' =>  Yii::t('product', 'CHAT_CREATED_BY'),'modified_date' =>  Yii::t('product', 'CHAT_MODIFIED_DATE'),'modified_by' =>  Yii::t('product', 'CHAT_MODIFIED_BY'),);}public function search(){$criteria=new CDbCriteria;$criteria->compare('title',$this->title,true);$criteria->compare('type',$this->type);$criteria->compare('addr',$this->addr,true);$criteria->compare('status',$this->status);$criteria->compare('show_time',$this->show_time);$criteria->order = 'order_by,id desc';return new CActiveDataProvider(get_class($this), array('criteria'=>$criteria,'Pagination' => array ('PageSize' => 15),));}public static function dropDown($column,$value=null){$dropDownList = array('type' => array('1' => 'www','2' => '1cm',),'status' => array('0' => Yii::t("product","CHAT_CLOSE"),'1' => Yii::t("product","CHAT_OPEN"),));if ($value !== null)return array_key_exists($column, $dropDownList) ? $dropDownList[$column][$value] : false;elsereturn array_key_exists($column, $dropDownList) ? $dropDownList[$column] : false;}
}
复制代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/451561.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/451561.shtml
英文地址,请注明出处:http://en.pswp.cn/news/451561.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3个著名加密算法(MD5、RSA、DES)的解析

MD5的全称是Message-Digest Algorithm 5&#xff0c;在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明&#xff0c;经MD2、MD3和MD4发展而来。 MD5将任意长度的“字节串”变换成一个128bit的大整数&#xff0c;并且它是一个不可逆的字符串变换算法&#x…

想念我的大大的石

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 // ------- 甘愿用我的一生去追寻 ... 想念我的大石头&#xff1a; 想念会默默陪着我&#xff0c;一直从烈日咫尺坐到黄昏浸透蔓蔓云层…

Java 中的悲观锁、乐观锁、自旋锁、适应性自旋锁、偏向锁、轻量级锁、重量级锁、公平锁、非公平锁、可重入锁、共享锁等

参考文献&#xff1a; 不可不说的Java“锁”事 java并发进阶 感谢美团技术团队&#xff01; 感谢JavaGuide&#xff01;

Git 的origin和master解析

首先要明确一点&#xff0c;对git的操作是围绕3个大的步骤来展开的&#xff08;其实几乎所有的SCM都是这样&#xff09; 1. 从git取数据&#xff08;git clone&#xff09; 2. 改动代码 3. 将改动传回git&#xff08;git push&#xff09; 这3个步骤又涉及到两个re…

end to end testing

概念 https://www.softwaretestinghelp.com/what-is-end-to-end-testing/ What is “End to End Testing”? Term “End to End testing” is defined as a testing method which determines whether the performance of an application is as per the requirement or not. It…

windows下安装mysql 开机启动

1 下载地址 http://dev.mysql.com/downloads/installer/ 2 下载版本 mysql community server 5.7.x 这个版本是一个傻瓜版本&#xff0c;设置root密码之后就可以启动服务了&#xff0c;不用自己配置&#xff0c;还有workbench可用。转载于:https://www.cnblogs.com/hustdc/p/91…

Linux目录架构详解

Linux和Windows操作系统的显著区别之一就是目录架构的不同。Linux操作系统的目录架构遵循文件系统层级结构标准。不知你是否使用ls命令浏览过Linux的根目录“/”&#xff0c;亲爱的读者&#xff0c;您都了解这些目录的含义吗&#xff1f; ls -l / 遍历文件系统&#xff08;点击…

越阳光明媚....

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 窗外阳光明媚&#xff0c;而心却如此哀伤... 很喜欢阳光明媚&#xff0c;很喜欢春暖花开&#xff0c; 窗外有几片庄稼地&#xff1a;满…

Linux的学习:

查看端口&#xff1a; netstat -anop | grep 80 netstat -ntlp 先看看不带n的 再看看带n的 我们发现在local address 即主机地址这一栏中&#xff0c;如果没有带n选项&#xff0c;会将套接字所对应的域名解析出来&#xff0c;如果加上n选项&#xff0c;那么就不会显示&#xff…

基于TCP协议的Socket通信

参考文章&#xff1a; Socket学习网络基础准备 基于TCP协议的Socket通信(1) 基于TCP协议的Socket通信(2) 感谢菜鸟分享&#xff01;

git pull命令

git pull命令作用&#xff1a;从另一个存储库或本地分支关联的远端分支获取最新代码&#xff0c;并与本地代码资源整合。git pull命令执行过程&#xff1a;取回远程主机某个分支的更新&#xff0c;再与本地的指定分支合并&#xff08;可能存在需手动解决的冲突&#xff09;。 …

RPM的用法

RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。 下面我们就来逐一的讲解吧。 一、 安装RPM包 RPM 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名。其中包括 软件包的名称(foo)&#xff0c;版本号(1.0)&#xff0c;发行号(1)&#xff0c; 和 硬…

Unix 多进程编程

一.多进程程序的特点由于UNIX系统是分时多用户系统, CPU按时间片分配给各个用户使用, 而在实质上应该说CPU按时间片分配给各个进程使用, 每个进程都有自己的运行环境以使得在CPU做进程切换时不会"忘记"该进程已计算了一半的"半成品". 以DOS的概念来说, 进程…

Redis单线程模型是什么?

参考文章&#xff1a; redis 单线程的理解 谢谢作者分享&#xff01;

寂静的时候

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 每每听到熟悉的旋律&#xff0c;终又会骤然就无法抑制排山倒海般的忧伤... 就这样想往若已经年迈到只能坐在夕阳余晖里遥望远方该多好.…

@staticmethod和@classmethod的作用与区别

一般来说&#xff0c;要使用某个类的方法&#xff0c;需要先实例化一个对象再调用方法。 而使用staticmethod或classmethod&#xff0c;就可以不需要实例化&#xff0c;直接类名.方法名()来调用。 这有利于组织代码&#xff0c;把某些应该属于某个类的函数给放到那个类里去&…

前端开发注意事项(HTML与CSS进阶)

HTML 与 CSS 进阶 Img 标签 alt 属性 一定要添加 用于图片描述 给机器看的&#xff0c;如果图片加载失败&#xff0c;会显示 alt <img src"" alt""/> 为 img 添加 图片注释 建议做法为 figure(图形) 和 figcaption [caption(字幕)]<figure>…

如果你懂我…

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 想往的世界&#xff0c;有风如深秋的柳絮… 翻飞在遥远的寂静里… 若冷落…若别离… 若守候…若赤诚… 若我…

[NOI2005]维护数列 恶心到毁天灭地的splay

传送门 debug到死2333. 虽然说是splay维护序列模板&#xff0c;作为蒟蒻的我还是GG %%%考场A的dalao Orz Orz. 其实不开long long也行&#xff0c;inf开成0x3f3f3f3f也可&#xff08;flag,欢迎推翻&#xff09; 就当存个板子吧. #include<bits/stdc.h> #include<cs…

Python的from import和import的区别

对于from...import...&#xff0c;其意义具体是from Module import Function或Class等&#xff0c;这个只是从模块中导入一个或几个函数或类的做法。另外一个常见的是import Module&#xff0c;就是把整个模块中得东西都导入&#xff0c;所以你后面的程序就都可以使用了。另外还…