2013-05-10 4 views
0

페이지 매김 컨트롤이있는 격자를 작성하려고합니다. GWT의 DataGrid이 그리드를 제공하고 SimplePager이 페이지 매김을 제공한다는 것을 이해합니다.UiBinder의 격자 및 호출기

나는 예를 http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#!CwCellTable

에 표시된 접근 방식을 가지고있다하지만 내 포장 구성 요소가 아닌 호출기 그리드,하지만 모두의 구성도이고 이것은 단지 조성이다.

GWT의 DataGrid을 확장하여 페이지 매김을 제공하려면 어떻게해야합니까? UiBinder을 사용하면 어떻게됩니까?

명확하지 않은 질문이 있으면 질문 해주십시오. 감사.

답변

0

샘플은 UiBinder 구조에 연결된 DataGridSimplePager을 사용합니다. 둘 다 위젯이며 서로 관련이 없으므로 원하는 모든 곳에 첨부 할 수 있습니다 (예에서와 같이). 이미 이미 모두 DataGridSimplePager을 캡슐화하는 구조를 가지고있는 경우

후 다른 위젯처럼 CompositeUiBinder에 연결합니다.

일반적으로 DataGrid (또는 다른 셀 위젯)을 확장하여 페이지 매김을 제공 할 필요가 없습니다. 간단히 구조를 선호하는대로 구조를 작성하십시오.

당신이 질문을 이해하기를 바랍니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 그냥 구성을 원하지 않습니다. 그러면 작성된 위젯이 모든 그리드 API를 제공해야하거나 사용자가 작성한 위젯에서 getGrid()를 실행 한 다음 사용해야 할 것입니다. 그래서'DataGrid'를 확장해야합니다. UI 바인더에서 동일한 작업을 수행하는 방법을 모르겠습니다. – LPD

1

정확하게 이해하면 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> 

그리고 당신은 페이징 자신의 데이터 그리드가있다. 나도 몰라.이게 정말 작동한다면, 나는 정상적인 그리드와 비슷한 것을했을 뿐이다.

희망이 있으면 도움이 될 것입니다.

+0

+1. 당신은 내 문제를 제대로 이해했습니다. 나는 그것을 밖으로 시도하고 알려드립니다. 고마워요 :) – LPD

+0

나는 의심이있다. 'MyDataGrid'가'Composite'로부터 연장하는 것은 필수가 아닙니까? – LPD

+0

AbstractHasData extends Composite -> AbstractCellTable extends AbstractHasData -> DataGrid extends AbstractCellTable -> MyDataGrid는 Composite를 확장 할 수 있도록 DataGrid를 확장합니다. – Sarajog