Как разбить сетку на страницы с выбранными столбцами

В учебном пособии по Agile Toolkit (Jobeet) я настроил быструю модель данных (стр. 3), и она хорошо выглядит на тестовой странице CRUD. Я попытался изменить строку кода в файле test.php. Проблема в том, что когда я добавил пагинатор, строку кода, данные в сетке исчезли. Является ли это ограничением для класса paginator? Есть ли быстрый способ разбить эту пользовательскую сетку на страницы? Спасибо.

Исходный код отображает ошибку «метод не определен» при добавлении 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

person mdietz    schedule 11.07.2012    source источник


Ответы (1)


Jobeet предназначен для Agile Toolkit 4.1 и использует устаревший setSource.

Я думаю, что если вы замените setSource на setModel, все должно быть в порядке.

person romaninsh    schedule 11.07.2012
comment
Спасибо, с этого я и начал. CRUD работает хорошо, но затем я хотел сделать две вещи. (1) Устранение дополнительных столбцов и просто отображение полей идентификатора, типа и позиции, а также я хотел (2) разбивать на страницы, и если я не набираю синтаксис неправильно, это не работает. - person mdietz; 11.07.2012
comment
OK Я создал уникальные столбцы, добавив новую модель только с теми полями, которые я хотел отобразить из базы данных. Я все еще не понимаю, как заставить класс addPaginator работать для примера CRUD. - person mdietz; 11.07.2012
comment
Хорошо, я понял, и это было проще, чем я думал. Мне просто понадобился $jobCRUD-›grid-›addPaginator(3) :) Спасибо - person mdietz; 11.07.2012