Здравствуйте. Необходимо реализовать постраничное отображение информации в GridPanel. Создаю Грид: Код | final RecordDef recordDef = new RecordDef(new FieldDef[]{ new StringFieldDef("number"), new StringFieldDef("Id"), new StringFieldDef("name"), new StringFieldDef("size") }); final ColumnModel columnModel = new ColumnModel(new ColumnConfig[]{ new ColumnConfig("№", "number", 15, true), new ColumnConfig("Id", "Id", 15, false), new ColumnConfig("Имя файла", "name", 100, true), new ColumnConfig("Размер файла", "size", 100, true) });
ArrayReader reader = new ArrayReader(recordDef); final Store store = new Store(reader);
final PagingToolbar pagingToolbar = new PagingToolbar(store); pagingToolbar.setPageSize(5);
NumberField pageSizeField = new NumberField(); pageSizeField.setWidth(40); pageSizeField.setSelectOnFocus(true); pageSizeField.addListener(new FieldListenerAdapter() { public void onSpecialKey(Field field, EventObject e) { if (e.getKey() == EventObject.ENTER) { int pageSize = Integer.parseInt(field.getValueAsString()); pagingToolbar.setPageSize(pageSize); } } });
ToolTip toolTip = new ToolTip("Enter page size"); toolTip.applyTo(pageSizeField); pagingToolbar.addField(pageSizeField);
grid.setBottomToolbar(pagingToolbar);
grid.setStore(store); grid.setColumnModel(columnModel); grid.setWidth(414); grid.setHeight(200); grid.setAutoWidth(false); //grid.setAutoHeight(true); grid.setBorder(true); grid.setAutoScroll(false); grid.setFooter(false); grid.focus(true); grid.setFrame(true); grid.stripeRows(true); GridView view = new GridView(); view.setForceFit(true); grid.setView(view); fieldSetWork.add(grid);
if (store == null) { return; }
|
но отображает все данные почему-то на одной странице. подозреваю что дело в store. В связи с этим вопрос такой: можно ли выбирать из базы все данные, а отображать их на страницах грида фиксированного размера?
|