Yii1.1 CGridView 簡單使用

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;所以你后面的程序就都可以使用了。另外還…