Grails ExtJS нумерация страниц - PullRequest
1 голос
/ 06 марта 2012

Я использую ExtJS 3.3.1 с Grails 2.0 для разбивки на страницы, но это не работает, как я ожидаю.Я следовал совету, размещенному здесь: Grails extJS paging
JS page

paramNames: {start:'offset',limit:'max',sort:'sort',dir:'order'},
baseParams: {offset:0,max:10},

pagingToolbar:

this.gridBBar = new Ext.PagingToolbar({
            pageSize : 10,
            store : this.gridStore,
            displayInfo : true,
            displayMsg  : 'Hiển thị {0} - {1} mục tìm được của {2} kết quả',
            emptyMsg : 'Không tìm thấy dữ liệu',
        });

Контроллер:

def result = Floor.createCriteria().list(
   max:params.int('max')?:100, 
   offset:params.int('offset')?:0
) 
render ([count:result.totalCount,data:result] as JSON)

но кнопка подкачки (Далее) была отключена, потому что в магазине было только 10 элементов, не нужно больше извлекать.
Когда я изменяю смещение на 10:

paramNames: {start:'offset',limit:'max',sort:'sort',dir:'order'},
baseParams: {offset:10,max:10},

, нумерация страницработают хорошо, за исключением одной странной вещи: сетка всегда отображает следующие 10 результатов (10-20 запись для первого клика, 20-30 запись для 2), а не текущие первые 10 результатов.Я не знаю, как правильно использовать нумерацию страниц в сочетании с ExtJs и Grails.Если у вас есть опыт в этой проблеме, не могли бы вы поделиться со мной информацией?
Большое вам спасибо.

1 Ответ

0 голосов
/ 07 марта 2012

О, как мне повезло.Я понял!
На основании этих 2 статей:
1. http://grails.1312388.n4.nabble.com/Find-Count-for-pagination-And-Objects-for-Criteria-td1368528.html
и
2. http://blog.jeffshurts.com/2010/04/grails-pagination-and-criteriabuilder/
Я нашел объяснение этому.Поскольку свойство "count", возвращаемое в JSON, получено из result.size (), поэтому оно всегда равно pageSize PagingToolbar хранилища сетки, поэтому хранилище поймет, что больше нет результатов для извлечения, и оно будетотключите навигационные кнопки.
Ключ здесь возвращает реальный общий результат запроса (без наложения ограничений на нумерацию страниц).Как обычно, createCriteria (). List {} возвращает ArraysList.Но передавая параметры пейджинга в список, как показано ниже: (см. Ссылку 1)

DomainClass.createCriteria().list(max : x, offset : y) { 
// not pass max : x, offset : y to here, inside the body
}

Grails неявно вернет результат в виде PagedResultList (см. Ссылку 2) и предоставит нам метод getTotalCount ().Там нет никакой официальной документации Grails упоминают эту магическую проблемуИ моя проблема была решена.

...