java - 在使用 AsyncDataProvider 创建的 GWT 项目 CellTable 中,未显示

标签 java gwt gwt-rpc celltable asynccallback

我的问题是我刚刚创建了一个 cellTable 但它不起作用,因为我在我的浏览器上看到了这个 the red border is of the FlowPanel that contains the table that has a black border, on side there is the GWT.log

红色边框是包含带有黑色边框的表格的 FlowPanel,旁边是 GWT.log

现在我已经尝试了所有方法,但我不知道为什么,也许由于某种原因它没有加载表格。但是,我确信 dataProvider 可以正常工作,因为正如您所见,日志显示数据“Carrello”已加载到我的表“carrello”的列中。这里是表的代码:

public class ShopTable extends CellTable {
private CellTable<Carrello> carrello;

private Column<Carrello, String> columnTitolo;
private Column<Carrello, String> columnTipoSupporto;

private AsyncDataProviderCarrello dataProvider;

private String COLUMN_NAME_TITOLO="Titolo film";
private String COLUMN_NAME_SUPPORTO="Tipo";

public ShopTable(){
    carrello=new CellTable<>();
    createTable();

    createWithAsyncDataProvider();
    GWT.log("Column example: "+carrello.getColumn(0).toString());
}

private void createTable(){
    columnTitolo=buildColumnTitolo();
    columnTipoSupporto=buildColumnTipoSupporto();

    // NEED TO ADD HEADER (and FOOTER MAYBE)
    carrello.addColumn(columnTitolo, "Titolo Film");
    carrello.addColumn(columnTipoSupporto, "Tipo");
}

private Column<Carrello, String> buildColumnTitolo(){
    columnTitolo=new Column<Carrello, String>(new EditTextCell()) {

        @Override
        public String getValue(Carrello object) {
            GWT.log("aggiungo a carrelloTable: "+object);
            return object.getTitolo();
        }
    };
    columnTitolo.setDataStoreName(COLUMN_NAME_TITOLO);

    return columnTitolo;
}
private Column<Carrello, String> buildColumnTipoSupporto(){
    columnTipoSupporto=new Column<Carrello, String>(new EditTextCell()) {

        @Override
        public String getValue(Carrello object) {
            GWT.log("aggiungo a carrelloTable: "+object);
            return object.getTipoSupporto().toString();
        }
    };
    columnTipoSupporto.setDataStoreName(COLUMN_NAME_TITOLO);

    return columnTipoSupporto;
}
private void createWithAsyncDataProvider(){
    dataProvider=new AsyncDataProviderCarrello();
    dataProvider.addDataDisplay(carrello);
    dataProvider.updateRowCount(10, false);
    //.. SORTING METHOD NEED TO ADD

}    


这里是使用 ShopTable 的 Widget UIBinder 的代码

public class CarrelloPage extends Composite {

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

interface CarrelloPageUiBinder extends UiBinder<Widget, CarrelloPage> {
}

interface MyStyle extends CssResource{
    String carrelloTable();
}

@UiField MyStyle style;

@UiField FlowPanel spazio_carrello;

/**
 * necessario per dimensionare ad hoc per
 * il pannello
 */

private ShopTable carrello;

private void resizeWidget(){
    setWidth("100%");
    setHeight(Window.getClientHeight() + "px");
}

public CarrelloPage() {
    carrello=new ShopTable();
    initWidget(uiBinder.createAndBindUi(this));
    carrello.setStyleName(style.carrelloTable());
    spazio_carrello.add(carrello);
    resizeWidget();
    Window.addResizeHandler(resizeHandler);

}
private ResizeHandler resizeHandler = new ResizeHandler()
{
    public void onResize (ResizeEvent event)
    {
        setWidgetToMaxWidthAndHeight();
    }
};

private void setWidgetToMaxWidthAndHeight ()
{
    setWidth("100%");
    setHeight(Window.getClientHeight() + "px");

}
}

感谢关注!

最佳答案

您的 CellTable 的高度为零。这就是您看不到它的原因。

您要么必须在代码中设置 CellTable 的高度,要么您应该将其添加到实现 ProvidesResize 接口(interface)的小部件,如 LayoutPanel。

关于java - 在使用 AsyncDataProvider 创建的 GWT 项目 CellTable 中,未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30967029/

相关文章:

java - 不支持的仪表版本 : This version of Gauge Intellij plugin only works with Gauge version >= 0. 9.0

java - 来自 GWT 的 RPC 调用异常

java - 使用 MVP 模式

php - 在服务器端使用 PHP 并在客户端使用 GWT 构建网站的好例子?

c# - 使用 C# 反序列化 GWT-RPC 响应

java - Play框架中的中间件(Java)

java - 如何将复选框监听器与动态 JTable 一起使用?

java - 从 Jenkins 或网站重启 Tomcat

gwt - 如何在另一个应用程序中使用一个 gwt 应用程序的源代码

Tomcat 上的 GWT 调用 Axis2 不起作用