Ecstore中finder”查看”下的分页实现


我们经常在finder中使用”查看”列出改条数据的一些详细信息,那么如果列出的信息太多导致一个页面放不下了怎么办呢?今天我就给大家讲讲如何在finder“查看”中进行分页。

首先,我们需要在lib/finder/xxx.php中添加构建函数__construct(),进行一些参数设定:

class notebook_finder_item{
	
    public function __construct($app)
    {
        $this->app = $app;
        $this->render = app::get('notebook')->render();
        $this->controller = app::get('notebook')->controller('admin_notebook');
        $this->pagelimit=10;
    }

然后,在“查看”的方法中做以下修改:

function detail_email($id){
    	if(!$id) return null;
        $render = app::get('notebook')->render();
		$nPage = $_GET['detail_email'] ? $_GET['detail_email'] : 1;
		$singlepage = $_GET['singlepage'] ? $_GET['singlepage']:false;
        $Oemail = kernel::single("notebook_mdl_item");
        $items = $Oemail->db->select('select item_email from sdb_notebook_item  limit '.$this->pagelimit*($nPage-1).','.$this->pagelimit);
        $this->render->pagedata['item'] =  $items;
        if($_GET['page']) unset($_GET['page']);
        $_GET['page'] = 'detail_email';
        $count =$Oemail->count();
        $render->pagedata['pager']=$a=$this->controller->pagination($nPage,$count,$_GET);
        return $this->render->fetch('admin/itememail.html');
    }


同时,我们要把detail_edit复制一份放到对应的controller中,添加如下函数:

class notebook_ctl_admin_notebook extends desktop_controller{
    var $workground = 'notebook_ctl_admin_notebook';
    var $pagelimit = 10;
    public function __construct($app)
    {
        parent::__construct($app);
        header("cache-control: no-store, no-cache, must-revalidate");
    }

function detail_email($id=null){
        if(!$id) return null;
        $render = $this->app->render();
		$nPage = $_GET['detail_email'] ? $_GET['detail_email'] : 1;
        $Oemail = kernel::single("notebook_mdl_item");
        $items = $Oemail->db->select('select item_email from sdb_notebook_item  limit '.$this->pagelimit*($nPage-1).','.$this->pagelimit);
        //print_r($nPage);die;
        $render->pagedata['item'] =  $items;
        if($_GET['page']) unset($_GET['page']);
        $_GET['page'] = 'detail_email';
        $count =$Oemail->count();
        $render->pagedata['pager']=$this->pagination($nPage,$count,$_GET);
        return $render->fetch('admin/itememail.html');
    }

    public function pagination($current,$count,$get){ //本控制器公共分页函数
        $app = app::get('notebook');
        $render = $app->render();
        $ui = new base_component_ui($this->app);
        $link = 'index.php?app=notebook&ctl=admin_notebook&act=ajax_html&id='.$get['id'].'&finder_act='.$get['page'].'&'.$get['page'].'=%d';//echo $link;
        $this->pagedata['pager'] = $ui->pager(array(
                'current'=>$current,
                'total'=>ceil($count/$this->pagelimit),
                'link' =>$link,
                ));
        return $this->pagedata['pager'];
    }
    public function ajax_html()
    {
        $finder_act = $_GET['finder_act'];
		//print_r($_GET['id']);die;
        $html = $this->$finder_act($_GET['id']);
        echo $html;
    }


最后一步,在html页面中要显示分页信息的地方,加入变量<{$pager}>,就OK了!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值