时时商务社区

标题: yii分页组件用法实例分析 [打印本页]

作者: qz234    时间: 2018-2-14 05:40

            本文实例讲述了yii分页组件用法。分享给大家供大家参考,具体如下:
该案例使用时,分页类在yii框架中以组件的形式存在于components中。
action代码如下:
public function actionIndex(){
  $user=User::model();
  //分页的使用
  $count=$user->count(); //获取总页数
  $pagesize=3; //每一页显示的记录条数
  $page=new Page($count,$pagesize);
  $sql="select * from {{user}} $page->limit";
  $info=$user->findAllBySql($sql);
  $show_page=$page->fpage();
  $this->renderPartial("index",array("info"=>$info,'show_page'=>$show_page));
}
在view页面,遍历info即可获取信息,输出show_page即可显示分页列表等信息。
现附上page.php代码如下:
"个记录", "prev"=>"上一页", "next"=>"下一页", "first"=>"首 页", "last"=>"尾 页");
  private $listNum=8;
  /*
   * $total
   * $listRows
   */
  public function __construct($total, $listRows=10, $pa=""){
   $this->total=$total;
   $this->listRows=$listRows;
   $this->uri=$this->getUri($pa);
   $this->page=!empty($_GET["page"]) ? $_GET["page"] : 1;
   $this->pageNum=ceil($this->total/$this->listRows);
   $this->limit=$this->setLimit();
  }
  private function setLimit(){
   return "Limit ".($this->page-1)*$this->listRows.", {$this->listRows}";
  }
  private function getUri($pa){
   $url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], '?')?'':"?").$pa;
   $parse=parse_url($url);
   if(isset($parse["query"])){
    parse_str($parse['query'],$params);
    unset($params["page"]);
    $url=$parse['path'].'?'.http_build_query($params);
   }
   return $url;
  }
  function __get($args){
   if($args=="limit")
    return $this->limit;
   else
    return null;
  }
  private function start(){
   if($this->total==0)
    return 0;
   else
    return ($this->page-1)*$this->listRows+1;
  }
  private function end(){
   return min($this->page*$this->listRows,$this->total);
  }
  private function first(){
      $html='';
   if($this->page==1)
    $html.='';
   else
    $html.=" {$this->config["first"]} ";
   return $html;
  }
  private function prev(){
      $html='';
   if($this->page==1)
    $html.='';
   else
    $html.=" {$this->config["prev"]} ";
   return $html;
  }
  private function pageList(){
   $linkPage="";
   $inum=floor($this->listNum/2);
   for($i=$inum; $i>=1; $i--){
    $page=$this->page-$i;
    if($pageuri}&page={$page}]{$page}[/url] ";
   }
   $linkPage.=" {$this->page} ";
   for($i=1; $ipage+$i;
    if($pagepageNum)
     $linkPage.=" {$page} ";
    else
     break;
   }
   return $linkPage;
  }
  private function next(){
      $html='';
   if($this->page==$this->pageNum)
    $html.='';
   else
    $html.=" {$this->config["next"]} ";
   return $html;
  }
  private function last(){
      $html='';
   if($this->page==$this->pageNum)
    $html.='';
   else
    $html.=" {$this->config["last"]} ";
   return $html;
  }
  private function goPage(){
   return ' '.$this->pageNum.')?'.$this->pageNum.':this.value;location=\''.$this->uri.'&page=\'+page+\'\'}" value="'.$this->page.'" style="width:25px">'.$this->pageNum.')?'.$this->pageNum.':this.previousSibling.value;location=\''.$this->uri.'&page=\'+page+\'\'"> ';
  }
  function fpage($display=array(0,1,2,3,4,5,6,7,8)){
   $html[0]=" 共有{$this->total}{$this->config["header"]} ";
   $html[1]=" 每页显示".($this->end()-$this->start()+1)."条,本页{$this->start()}-{$this->end()}条 ";
   $html[2]=" {$this->page}/{$this->pageNum}页 ";
   $html[3]=$this->first();
   $html[4]=$this->prev();
   $html[5]=$this->pageList();
   $html[6]=$this->next();
   $html[7]=$this->last();
   $html[8]=$this->goPage();
   $fpage='';
   foreach($display as $index){
    $fpage.=$html[$index];
   }
   return $fpage;
  }
}
希望本文所述对大家基于yii框架的PHP程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • Yii使用CLinkPager分页实例详解
  • YII CLinkPager分页类扩展增加显示共多少页
  • Yii实现简单分页的方法
  • Yii2分页的使用及其扩展方法详解
  • yii2分页之实现跳转到具体某页的实例代码
  • Yii视图操作之自定义分页实现方法
  • Yii列表定义与使用分页方法小结(3种方法)
  • Yii框架结合sphinx,Ajax实现搜索分页功能示例
  • YII框架中搜索分页jQuery写法详解
  • yii框架搜索分页modle写法
  • yii2实现分页,带搜索的分页功能示例
  • Yii1.1中通过Sql查询进行的分页操作方法
  • Yii框架分页实现方法详解
            




    欢迎光临 时时商务社区 (http://bbs.4435.cn/) Powered by Discuz! X3.2