首页 > 编程 > PHP > 正文

Yii使用CLinkPager分页实例详解

2020-03-22 20:32:02
字体:
来源:转载
供稿:网友
本文主要讲解了YII中使用CLinkPager分页的方法,这里我们采用物件的形式来定义分页:首先在components中自定义LinkPager,并继承CLinkPager具体代码如下: * CLinkPager html' target='_blank'>class file. * @link http://www.yiiframework.com/ * @copyright Copyright 2008-2011 Yii Software LLC * @license http://www.yiiframework.com/license/ * CLinkPager displays a list of hyperlinks that lead to different pages of target. * @version $Id$ * @package system.web.widgets.pagers * @since 1.0class LinkPager extends CLinkPager const CSS_TOTAL_PAGE='total_page'; const CSS_TOTAL_ROW='total_row'; * @var string the text label for the first page button. Defaults to ' First'. public $totalPageLabel; * @var string the text label for the last page button. Defaults to 'Last '. public $totalRowLabel; * Creates the page buttons. * @return array a list of page buttons (in HTML code). protected function createPageButtons()
list($beginPage,$endPage)=$this- getPageRange(); $currentPage=$this- getCurrentPage(false); // currentPage is calculated in getPageRange() $buttons=array(); // first page $buttons[]=$this- createPageButton($this- firstPageLabel,0,self::CSS_FIRST_PAGE,$currentPage =0,false); // prev page if(($page=$currentPage-1) 0) $page=0; $buttons[]=$this- createPageButton($this- prevPageLabel,$page,self::CSS_PREVIOUS_PAGE,$currentPage =0,false); // internal pages for($i=$beginPage;$i =$endPage;++$i) $buttons[]=$this- createPageButton($i+1,$i,self::CSS_INTERNAL_PAGE,false,$i==$currentPage); // next page if(($page=$currentPage+1) =$pageCount-1) $page=$pageCount-1; $buttons[]=$this- createPageButton($this- nextPageLabel,$page,self::CSS_NEXT_PAGE,$currentPage =$pageCount-1,false); // last page $buttons[]=$this- createPageButton($this- lastPageLabel,$pageCount-1,self::CSS_LAST_PAGE,$currentPage =$pageCount-1,false); // 页数统计 $buttons[]=$this- createTotalButton(($currentPage+1)."/{$pageCount}",self::CSS_TOTAL_PAGE,false,false); // 条数统计 $buttons[]=$this- createTotalButton("共{$this- getItemCount()}条",self::CSS_TOTAL_ROW,false,false); return $buttons; protected function createTotalButton($label,$class,$hidden,$selected) if($hidden || $selected) $class.=' '.($hidden self::CSS_HIDDEN_PAGE : self::CSS_SELECTED_PAGE); return ' li class="'.$class.'" '.CHtml::label($label,false).' /li * Registers the needed client scripts (mainly CSS file). public function registerClientScript() if($this- cssFile!==false) self::registerCssFile($this- cssFile); * Registers the needed CSS file. * @param string $url the CSS URL. If null, a default CSS URL will be used. public static function registerCssFile($url=null) if($url===null) $url=CHtml::asset(Yii::getPathOfAlias('application.components.views.LinkPager.pager').'.css'); Yii::app()- getClientScript()- registerCssFile($url);定义CSS样式 * 翻页样式.page_blue{ margin: 3px; padding: 3px; text-align: center; font: 12px verdana, arial, helvetica, sans-serif;ul.bluePager,ul.yiiPager font-size:11px; border:0; margin:0; padding:0; line-height:100%; display:inline; text-aligin:center;ul.bluePager li,ul.yiiPager li display:inline;ul.bluePager a:link,ul.yiiPager a:link,ul.bluePager a:visited,ul.yiiPager a:visited,ul.bluePager .total_page label,ul.yiiPager .total_page label,ul.bluePager .total_row label,ul.yiiPager .total_row label border: #ddd 1px solid; color: #888888 !important; padding:2px 5px; text-decoration:none;ul.bluePager .page a,ul.yiiPager .page a font-weight:normal;ul.bluePager a:hover,ul.yiiPager a:hover color:#FFF !important; border:#156a9a 1px solid; background-color:#2b78a3ul.bluePager .selected a,ul.yiiPager bluePager .selected a color:#3aa1d0 !important; border: 1px solid #3aa1d0;ul.bluePager .selected a:hover,ul.yiiPager .selected a:hover color:#FFF !important;ul.bluePager .hidden a,ul.yiiPager .hidden a border:solid 1px #DEDEDE; color:#888888;ul.bluePager .hidden,ul.yiiPager .hidden display:none;controller中操作://分页操作$criteria=new CDbCriteria;$criteria- order='id DESC';$criteria- select=array('id','uid','username','title','thumb','url','clicks','time','dateline','countfavorite','quality');$criteria- condition=$sql;$total = Video::model()- count($criteria);$pages = new CPagination($total); $pages- pageSize=self::PAGE_SIZE;$pages- applyLimit($criteria);$list = Video::model()- findAll($criteria);$title = CommonClass::model()- find(array( 'select'= array('cname'), 'condition'= 'id = '.$id,$this- render('application.views.video.list',array( 'array'= $array, 'arr'= $arr, 'result'= $result, 'list'= $list, 'pages'= $pages, 'title'= $title,在views/video/list.php中引用: $this- widget('LinkPager', array('pages' = $pages,)); PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表