GWT 展示,以及我发现的许多示例,总有一个非常简单的 DataGrid 用法:
- 您在 UIBinder 中定义 DataGrid 元素,并设置要提供的字段。
- 在视图构造函数中初始化网格 - 定义列并添加数据
- 生成 UI 活页夹
- 它呈现的一切都符合预期..
但常见情况并非如此静态:您通常设置网格但没有数据,这些数据可能仅在用户执行某些操作(单击按钮等)后提供。
我花了很多时间在我复杂的 UI 布局中展示 DataGrid :| 为此,网格现在托管在具有 100% 宽度和高度的 SimpleLayoutPanel 中,并且此 SimpleLayoutPanel 位于某个停靠面板内。但由于我不明白的原因 - 网格的显示超出了停靠面板的大小,所以我永远看不到它的滚动条的底端。
这是我的 UI 活页夹(为了清楚起见删除了一些东西):
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>
.sidePadding {
padding-left: 8px;
padding-right: 8px;
}
.expanded {
width: 100%;
height: 100%;
}
<g:DockLayoutPanel unit="PX" styleName="{style.expanded}">
<g:north size="45">
...
</g:north>
<g:center>
</g:center>
...
<g:east size="190">
<g:FlowPanel styleName="{style.sidePadding}">
<g:FlowPanel>
<g:Label>SOME TOOLBAR</g:Label>
</g:FlowPanel>
<g:HTMLPanel>
<g:Label>SOME PANEL PANEL </g:Label>
</g:HTMLPanel>
<g:FlowPanel ui:field="eastContent">
<g:Label>SOME FLOW PANEL</g:Label>
</g:FlowPanel>
<g:SimpleLayoutPanel ui:field="imagesGrid" addStyleNames="{style.expanded}"/>
</g:FlowPanel>
</g:east>
</g:DockLayoutPanel>
</ui:UiBinder>
事实证明 - 东面板的高度为 650 像素,这是正确的值,但 SimpleLayoutPanel 内的 DataGrid 也具有相同的高度!并且因为它之前有一些标签等 - 它溢出了东面板的大小..
有什么帮助???
更新: 似乎如果我从东面板中删除所有内容并只留下 DataGrid 的 SimpleLayoutPanel - 它可以找到!但我确实需要在网格上方添加所有这些额外的标签 - 我找不到解决方案。??