Jor2080
Jor2080
2014-12-10 04:42

关于TinkPHP整合jqueryEasyui datagrid分页的问题

  • 分页
  • php
  • datagrid
  • jquery

用datagrid分页显示数据,后台ThinkPHP代码怎么写?
为什么点击datagrid的下一页,datagrid不能加载刷新第2页的数据?

 我的思路:
     ①index渲染模板
         ②supplier_list.html引入的supplier_list.js利用jquery的$(document).ready(function(){$('#list0').datagrid(//此处省略代码...);});来加载datagrid的数据。
 后台代码如下(index()渲染模板,read()为前台datagrid加载数据):

<?php
/**

  • Description of CustomerAction *名称:供应商控制器
  • @author zhaodan */ require_once('./Conf/config.php'); import('ORG.Util.Session');

class SupplierAction extends Action{

 public function index(){
      $this->assign('title','供应商列表');
      $this->display("Supplier:supplier_list"); 
 }

        //获取供应商列表
        public function read(){
              $supplier=M('Supplier');  
              //当前第几页
              $pagenum=isset($_POST['page'])? intval($_POST['page']):1;
              //每页显示的记录数
              $pagesize=isset($_POST['rows'])? intval($_POST['rows']):10;  
              if(isset($_POST['keyword'])){
                $map['name']=array('like',array('%'.$_POST['keyword'].'%'));
              }else{
                $map['_string']='1=1';
              }
                //import('@.ORG.Util.Page');          
          //$Page=new Page($total,$pagesize);   //实例化分页类 传入总记录数
          //进行分页数据查询 注意page方法的参数的前面部分是当前的页数,使用$_GET[p]获取
          //$list2=$supplier->page($pagenum.','.$Page->listRows)->order('ctime')->select();
          $list=$supplier->where($map)->limit(($pagenum-1)*$pagesize.','.$pagesize)->order('ctime')->select();
          $total=$supplier->where($map)->count();  //查询满足条件的总记录数
          $jsonStr='{"total":'.$total.',"rows":'.json_encode($list).'}';
                echo $jsonStr;
        }

        //js代码

             //设置分页插件
     var p=$("#list0").datagrid('getPager');
     /*分页插件*/
     $(p).pagination({
             pageNumber:1,   //显示的页数
             pageSize:10,     //每页显示的大小
             pageList:[10,20,30,50],
             beforePageText:'第',  //页数文本框前显示的汉字
             afterPageText:'页 共{pages}页',
             displayMsg:'当前显示{from}-{to}条记录 共{total}条记录',
             onSelectPage:function(pageNumber,pageSize){
                    //选择相应的页码时刷新显示的内容列表                   
                    //var queryParams=$("#list0").datagrid('options').queryParams;
                    //queryParams.PageNumber=pageNumber;
                    //queryParams.PageSize=pageSize;
                    $("#list0").datagrid('reload',{page:pageNumber,rows:pageSize});
             }
        });

点击datagrid下方的pagination控件的下一页,datagrid不能刷新显示第二页的数据?这是为什么呢?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐