0

我正在尝试构建一个具有分页控件的网格。我了解DataGridGWT 提供了 Grid 并SimplePager提供了分页。

我采用了示例http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#!CwCellTable中所示的方法

但这只是一个组合,其中我的包装组件既不是 Grid 也不是 Pager,而是两者的组合。

如果我想扩展DataGridGWT 以提供分页,我该如何使用UiBinder

如果有不清楚的地方,请问我任何问题。谢谢。

4

2 回答 2

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> 

然后你就有了自己的分页 DataGrid。我不知道这是否真的有效,我只用普通网格做了类似的事情。

希望它会帮助你。

于 2013-05-13T13:35:31.690 回答
0

该示例使用一个DataGrid并附SimplePager加到一个UiBinder结构。两者都是小部件并且彼此无关,因此您可以将它们附加到您想要的任何位置(如示例中所示)。

如果您已经有一个已经封装了 theDataGrid和 的结构SimplePager,那么将它附加CompositeUiBinder,就像任何其他小部件一样。

通常,您不必扩展DataGrid(或任何其他单元格小部件)来提供分页。只需按照您的喜好组合结构即可。

希望能理解你的问题。

于 2013-05-10T11:02:01.613 回答