2010-12-11 5 views

ответ

5

Предложение является то, что использование

Gwt-Ext или SmartGWT

, который предоставляет различные компоненты, включая локальный пейджинг и пролистывание, которые могут спасти вашу сжигание полуночи нефть.

+2

Я не знаю, о GWT-Ext, но SmartGWT это ужасный беспорядок. Если вы хотите уничтожить производительность своего сайта и иметь много запутанных проблем, то SmartGWT - это ваша библиотека. – ZalewaPL

4

Вы всегда можете расширить компонент и добавить свои функции самостоятельно или, как говорит @ankit, использовать smartgwt.

Помните, что один из преимуществ gwt - это возможность добавлять функции к компонентам по умолчанию, пользоваться им.

[править] еще одна вещь, теперь я помню, посмотрите на это: http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable

6

Как @ caarlos0 упоминалось, CellTable является хорошим началом. Вы также можете посмотреть GWT SimplePager и AsyncDataProvider. В принципе SimplePager будет привязан к CellTable (или любому виджету Cell) и AsyncDataProvider. Если происходит событие смены страницы (например, пользователь нажимает следующую страницу), onRangeChanged() будет вызван внутри AsyncDataProvider, и вы можете настроить поведение пейджинга в этой функции.

12

Если вам нужна разбивка на страницы, вы можете попробовать GWT Widget под названием «CellTable». Это настраиваемая таблица, которая легко поддерживает разбиение на страницы.

Вы можете найти более подробную информацию здесь (Javadoc страницы): http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/cellview/client/CellTable.html

И это пример того, как использовать его: http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellTable

2

Я предложил бы использовать что-то вроде Ext-GWT. Он обеспечивает встроенные механизмы обработки пейджинга. Вы можете иметь вид сетки, которая поддерживает Local Pagination (все данные собраны в одном вызове, но разделить на разные страницы) или Remote Pagination (вызов данных производится каждый раз, когда новая страница загружается)

4

Я бы предложил использовать celltable. С первого взгляда это довольно сложно. Но, как только вы привыкнете к нему, это будет мощным. CellTable для нескольких столбцов CellList для одного столбца Не пытайтесь использовать CellTree довольно плохо.

CellTable сортировка и ширина колонки Информация: http://code.google.com/intl/ca/webtoolkit/doc/latest/DevGuideUiCellTable.html

4

yes.CellTable действительно хороший вариант для pagination.Once привыкает it.u будет очень пользователя friendly.use simplePager для пагинации.

5

Вы можете продлить AbstractPager, если вы хотите иметь больше контроля над интерфейсом, чем SimplePager. Тогда вам просто нужно переопределить onRangeOrRowCountChanged(). Вы также можете реализовать приятные вещи, такие как ленивая загрузка. Затем вы можете разбивать на страницы любой виджет, который реализует HasRows.

6

Я пробовал разбиение на страницы с помощью Celltable, и все идет хорошо.

В вашей деятельности, вы должны сделать что-то похожее на это:

CellTable table; 

@Override 
public void start(AcceptsOneWidget panel, EventBus eventBus) { 
    // Get the table from the view 
    view.setPresenter(this); 
    panel.setWidget(view.asWidget()); 
    table=view.getCellTable(); 
    final SingleSelectionModel<Your_Class> selectionModel = new SingleSelectionModel<Your_Class>(); 
    table.setSelectionModel(selectionModel); 
    selectionModel.addSelectionChangeHandler(
     new SelectionChangeEvent.Handler() { 
      public void onSelectionChange(SelectionChangeEvent event) { 
       Your_Class selected = selectionModel.getSelectedObject(); 
       if (selected != null) { 
        // Go to edit screen with selected.getId(); 
       } 
      } 
     }); 
} 

Затем в целях реализации создать столбцы:

table = new CellTable<Your_Class>(); 
table.setSelectionModel(new SingleSelectionModel<Your_Class>()); 

И, наконец, поставить нумерацию страниц:

SimplePager pager; 
SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class); 
pager = new SimplePager(TextLocation.CENTER, pagerResources, true, 0,true); 
pager.setDisplay(table); 

dataProvider.setList(list_of_data); 
pager.setPageSize(number_you_want); 
0

Я знаю, что вопрос довольно старый но это еще не упоминалось. Вы можете использовать ListDataProvider для обработки страниц подкачки на стороне клиента. Он очень прост в использовании и сэкономит вам много времени.

0

Классическое начало/длина разбивки на страницы полностью поддерживается виджетами GWT. Просто создайте SimplePager и зацепите RangeChangeEvent. Ваша проблема будет на сервере, особенно с современными базами данных NoSQL. Хотя большинство из них поддерживают модификаторы «запуска» и «ограничения» запросов тем же способом, что и JPA/Hibernate, «start» сильно обескуражен, потому что он может работать только путем повторения ненужных данных.

Учитывайте непрерывность блога «прокрутка» в блогах или только «Пред./След.». Затем вы можете реализовать его путем сортировки набора результатов и определения условий «lee than» или «more» - вместе с «лимитом».

0
package com.ravi.gwt.client; 

import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.user.client.ui.RootPanel; 
import com.ravi.gwt.client.ContactDatabase.ContactInfo; 
import com.ravi.gwt.client.ui.MyPaginationDataGrid; 
public class GWT11 implements EntryPoint { 

    public void onModuleLoad() { 
     MyPaginationDataGrid<ContactInfo> grid = new MyPaginationDataGrid<ContactInfo>(); 
     grid.setHeight("500px");`enter code here` 
     grid.setDataList(ContactDatabase.get().generateContacts(100)); 
     RootPanel.get().add(grid); 
    } 
} 
+0

По крайней мере, добавьте некоторое объяснение, что вы сделали. – ketan

1

Q1 Поддерживается ли разбивка на страницы в GWT?

Да

Q2 Предоставляет ли GWT элемент GWT GUI?

Да

Подробности -

Paging является операция погрузки и приносящие в поле зрения диапазон данных, которые в настоящее время не загружены. Q1 - Направляющая на стороне клиента полностью поддерживается GWT через SimplePager и AbstractPager классы. Если вы ищете удаленное разбиение на страницы, вам придется создавать свои собственные виджеты и логику в соответствии с вашими требованиями.

Пример:

public class SimplePagerExample implements EntryPoint { 

    public void onModuleLoad() { 
// Create a CellList. 
CellList<String> cellList = new CellList<String>(new TextCell()); 

// Add a cellList to a data provider. 
ListDataProvider<String> dataProvider = new ListDataProvider<String>(); 
List<String> data = dataProvider.getList(); 
for (int i = 0; i < 200; i++) { 
    data.add("Item " + i); 
} 
dataProvider.addDataDisplay(cellList); 

// Create a SimplePager. 
SimplePager pager = new SimplePager(); 

// Set the cellList as the display. 
pager.setDisplay(cellList); 

// Add the pager and list to the page. 
VerticalPanel vPanel = new VerticalPanel(); 
vPanel.add(pager); 
vPanel.add(cellList); 
RootPanel.get().add(vPanel); 
     } 
    } 

` Q2SimplePager содержит кнопки и текстовые метки, которые можно настроить в соответствии с вашими требованиями. Для справки проверить эту ссылку http://samples.gwtproject.org/samples/Showcase/Showcase.html#!CwCellTable

UI of simple pager

Смежные вопросы