我们经常在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了!