2013-05-10 2 views
0

Я пытаюсь создать сетку с элементами управления разбиением на страницы. Я понимаю, что DataGrid GWT предоставляет сетку и SimplePager предоставляет разбиение на страницы.Сетка и пейджер в UiBinder

Я принял подход, показанный в примере http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#!CwCellTable

Но это только композиция, в которой мой завернутые компонент не является ни сетки не пейджера, но состав обоих.

Если я хочу расширить DataGrid GWT, чтобы обеспечить разбиение на страницы, как я могу достичь этого, используя UiBinder?

Пожалуйста, задавайте мне любое количество вопросов, если что-то неясно. Благодарю.

ответ

0

Образец использует DataGrid и SimplePager прилагается к структуре UiBinder. Оба являются виджетами и не связаны друг с другом, поэтому вы можете прикреплять их везде, где хотите (как в примере).

Если у вас уже есть структура, которая уже инкапсулирует как DataGrid и SimplePager, затем прикрепить что Composite к UiBinder, как и любой другой виджет.

В общем, вам не нужно распространять DataGrid (или любой другой виджет ячейки), чтобы обеспечить разбиение на страницы. Просто составляют Структура, как вы предпочитаете.

Надеюсь, что поняли, что вы сомневаетесь.

+0

Спасибо за ваш ответ. Но мне не нужна только композиция, потому что тогда мой составленный виджет должен предоставить все API-интерфейсы сетки или пользователям придется делать 'getGrid()' из моего составного виджета, а затем использовать его. Поэтому мне нужно расширить 'DataGrid'. Я не знаю, как сделать то же самое в связующем UI – LPD

1

Если вы правильно поняли, что хотите элемент Element, который является SimplePager и DataGrid одновременно. Я не понимаю, почему вам нужно что-то подобное? Я просто не понимаю, что вам нужно, и состав как http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#! не имеет? Если вам нужно будет вызывать функции DataGrid, я бы предположил, что вы создаете класс, который расширяет DataGrid.

public class MyDataGrid extends DataGrid<EngineJobDTO> { 

    private static MyDataGridUiBinder uiBinder = GWT.create(MyDataGridUiBinder.class); 


    interface MyDataGridUiBinder extends UiBinder<Widget, MyDataGrid> { 
    } 


    @UiField 
    SimplePager pager; 


    public MyDataGrid() { 
     initWidget(uiBinder.createAndBindUi(this)); 
     SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class); 
     pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0, true); 
     pager.setDisplay(this); 
    } 
} 

UiBinder для него:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" 
xmlns:g="urn:import:com.google.gwt.user.client.ui" 
xmlns:c="urn:import:com.google.gwt.user.cellview.client"> 
<c:SimplePager ui:field='pager' location='CENTER'/> 
</ui:UiBinder> 

И тогда у вас есть свой собственный DataGrid с подкачки. Я не знаю. Если это действительно работает, я только что сделал что-то подобное с нормальной сеткой.

Надеюсь, это поможет вам.

+0

+1. Вы правильно поняли мою проблему. Я попробую и дам вам знать. Большое спасибо :) – LPD

+0

У меня есть сомнения. не является обязательным для 'MyDataGrid' для расширения от' Composite' ???? – LPD

+0

AbstractHasData extends Composite -> AbstractCellTable расширяет AbstractHasData -> DataGrid расширяет AbstractCellTable -> MyDataGrid расширяет DataGrid, так что он также расширяет композитный. – Sarajog

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