1

我在 DisclosurePanel 中使用 ResizeLayoutPanel 时遇到问题。

我在 ResizeLayoutPanel 中有一个 Datagrid,在 DisclosurePanel 中有一个 ResizeLayaoutPanel。问题是在加载数据时,如果 DisclosurePanel 已关闭,当用户打开closurePanel 时,它会发现表为空。如果用户在 DisclosurePanel 打开时执行此操作,则可以正常工作。

知道如何解决这个问题吗?

这是代码:

ResizeLayoutPanel resizeLayoutPanel = new ResizeLayoutPanel();

    resizeLayoutPanel.setWidth("100%");
    resizeLayoutPanel.setStyleName("gwt-resizeLayoutPanel-Example");

    /****CREATE COLUMNS [BEGIN] ***************************************************************************/
    // Create column.
    TextColumn<Object> column = new TextColumn<Object>() {
        @Override
        public String getValue(Object object) {
            return "Test";
        }
    };
    /******CREATE COLUMNS [END] ***************************************************************************/


    cellTable = new DataGrid<Object>();
    cellTable.addColumn(column, "Example");
    cellTable.setKeyboardSelectionPolicy(HasKeyboardSelectionPolicy.KeyboardSelectionPolicy.BOUND_TO_SELECTION);
    cellTable.setWidth("100%");
    cellTable.setEmptyTableWidget(new Label("Example table"));

    resizeLayoutPanel.add(cellTable);

    //Link dataProvider with CellTable
    dataProvider.addDataDisplay(cellTable);

    this.container = ModuleContainer.getAdvancedDisclosurePanel("Samples");
    this.container.setWidth("100%");
    this.container.setContent(resizeLayoutPanel);

    return this.container;
4

1 回答 1

0

ResizeLayoutPanel 提供resize(实现ProvidesResize)但不需要resize(不实现RequiresResize)。

由于普通状态下的 ResizeLayoutPanel 不听 resize,所以你必须故意调整它的大小,或者编写代码来调整它的大小。也许,将宽度和高度设置为 100%。

然后,为什么将表格放在 ResizeLayoutPanel 中?

ResizeLayoutPanel 为 RequiresResize 的小部件提供调整大小。您需要扩展单元格表以实现 RequiresResize,以便 ResizeLayoutPanel 能够调整它的大小。

在编程 GWT 时,任何人都需要学习的第一个概念是了解为什么/如何从根调整大小面板创建完整的 RequiresResize-RequiresResize 链/树。如果您的调整大小链/树的根不是 RootLayoutPanel,那么您必须故意调整该根的大小。

在这种情况下,您已将 ResizeLayoutPanel 设为 resize 不存在的调整大小链的根。使用另一个实现 RequiresResize 的面板,以便它可以由父级调整大小 - 以及确保父级可由用户或另一个可调整大小的父级手动调整大小。

我可以问你自己,使用 ResizeLayoutPanel 的原因是什么而不提供调整大小的方法,也没有将其用作调整大小链的根?

于 2012-09-06T02:28:17.900 回答