我正在尝试从 CellTable 切换到 DataGrid。实际的更改非常简单(API 完全相同) - 但如果不明确设置网格的宽度和高度,我无法让网格可见。在 CellTable 中,将宽度和高度设置为 100% 就足够了——这就是我想要的行为。
在我看来,HotrizontalPanel 中有两个部分:一个显示一些选项卡(按钮),另一个显示网格。每次单击选项卡时,都会清除网格区域并创建新网格。
视图如下所示:
<ui:style>
.expanded {
width: 100%;
height: 100%;
}
.simpleContainer {
border-top: 5px solid #484848;
border-bottom: 5px solid #484848;
}
</ui:style>
<c:SimpleContainer addStyleNames="{style.simpleContainer} SimpleContainer">
<g:HorizontalPanel>
<g:HorizontalPanel ui:field="headersContainer"/>
<g:FlowPanel ui:field="tablePanel" styleName="{style.expanded}"/>
</g:HorizontalPanel>
</c:SimpleContainer>
这是来自正在运行的应用程序的 HTML 快照:
<div class="GKQJTVMDCNC-com-mycode-management-client-ui-panels-PropertiesPaneView_PropertiesPaneUiBinderImpl_GenCss_style-simpleContainer SimpleContainer" id="x-widget-21" style="width: 1730px; height: 126px; ">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td align="left" style="vertical-align: top; ">....</td>
<td align="left" style="vertical-align: top; ">
<div class="GKQJTVMDBNC-com-mycode-management-client-ui-panels-PropertiesPaneView_PropertiesPaneUiBinderImpl_GenCss_style-expanded">
<div style="position: relative; overflow-x: hidden; overflow-y: hidden; " __gwtcellbasedwidgetimpldispatchingfocus="true" __gwtcellbasedwidgetimpldispatchingblur="true">
....
</div>
</div>
</td>
</tr>
</tbody>
</table>
上部 div 具有正确的宽度和高度,但不知何故 DataGrid div 具有 1px 高度和 0px 宽度(根据 chrome 开发人员工具在列表中)
<div class="GKQJTVMDBNC-com-mycode-management-client-ui-panels-PropertiesPaneView_PropertiesPaneUiBinderImpl_GenCss_style-expanded">
任何的想法?