【问题标题】:How to paginate a grid with selected columns如何使用选定的列对网格进行分页
【发布时间】:2012-07-11 16:25:59
【问题描述】:

在敏捷工具包教程 (Jobeet) 中,我设置了快速数据模型(第 3 页),它与 CRUD 测试页面相得益彰。我试图更改 test.php 文件中的一行代码。问题是当我添加分页器,代码行时,网格中的数据消失了。这是对分页器类的限制吗?有没有一种快速的方法可以让这个自定义网格分页?谢谢。

添加addPaginator时原码显示方法未定义错误如下图:

    $this->add('CRUD')->setModel('Category');
    //$this->add('CRUD')->setModel('Job');
    $jobCRUD=$this->add('CRUD');
    $jobCRUD->setModel('Job');
    $jobCRUD->addPaginator(3);  //This line causes an method not defined error

使用 setSource 修改的代码不会显示错误,而是显示一个空网格:

class page_test extends Page {
    function init(){
        parent::init();
        //$this->add('CRUD')->setModel('Category'); //Not needed for my example
        $grid=$this->add('Grid'); 
        //$grid->setModel('Job'); //Removed this to show custom columns
        $grid->addColumn('id');
        $grid->addColumn('type');
        $grid->addColumn('position');
        $grid->setSource('job');
        $grid->addPaginator(3);  //Added this to paginate the results (doesn't work & removes data)
    }
}

解决方案:

    $this->add('CRUD')->setModel('Category');
    //$this->add('CRUD')->setModel('Job');
    $jobCRUD=$this->add('CRUD');
    $jobCRUD->setModel('Job');
    $jobCRUD->grid->addPaginator(3); // This fixed the paginator

【问题讨论】:

    标签: php user-interface frameworks atk4


    【解决方案1】:

    Jobeet 适用于 Agile Toolkit 4.1,并使用已过时的“setSource”。

    我认为如果你用 setModel 替换 setSource 应该没问题。

    【讨论】:

    • 谢谢,这就是我的开始。 CRUD 工作得很好,但后来我想要完成两件事。 (1) 消除额外的列并只显示 id、type 和 position 字段,而且我希望 (2) 分页功能,除非我输入的语法错误,否则它不起作用。
    • OK 我通过添加一个仅包含我想从数据库中显示的字段的新模型来创建唯一列。我仍然坚持如何让 addPaginator 类为 CRUD 示例工作
    • 好的,我明白了,它比我想象的要简单。我只需要 $jobCRUD->grid->addPaginator(3) :) 谢谢
    猜你喜欢
    • 2017-06-27
    • 2015-08-12
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    • 2011-06-18
    • 2010-10-04
    • 2011-01-23
    • 2010-12-17
    相关资源
    最近更新 更多