Java GWT数据网格与SimpleLayoutPanel赢得';t显示垂直滚动条
在GWT showcase以及我发现的许多示例中,DataGrid始终有一个非常简单的用法:Java GWT数据网格与SimpleLayoutPanel赢得';t显示垂直滚动条,java,gwt,datagrid,Java,Gwt,Datagrid,在GWT showcase以及我发现的许多示例中,DataGrid始终有一个非常简单的用法: 在UIBinder中定义DataGrid元素,并设置要提供的字段 在视图构造函数中初始化网格-定义列并添加数据 生成UI活页夹 它所呈现的一切都与预期相符 但常见的情况并非如此静态:您通常设置了网格,但没有数据,只有在用户执行某些操作(单击按钮等)后才能提供这些数据 在复杂的UI布局中展示DataGrid花了我很多时间:| 为此,网格现在位于SimpleLayoutPanel中,该面板具有100%的宽度
.侧边填充{
左侧填充:8px;
右边填充:8px;
}
.扩大{
宽度:100%;
身高:100%;
}
...
...
一些工具栏
一些面板
一些流程面板
事实证明,east面板的高度为650px,这是正确的值,但SimpleLayoutPanel内的DataGrid也具有相同的高度!因为在它之前有一些标签等,它溢出了东面板的大小
有什么帮助吗
更新:
看起来,如果我从east面板中删除所有内容,只留下DataGrid的SimpleLayoutPanel,那么它就可以找到了!
但我确实需要在网格上方添加所有这些额外的标签,我找不到解决方案。
??参见
布局面板(RequiresResize
widgets)必须嵌套到其他布局面板(providesize
widgets)中,一直嵌套到RootLayoutPanel
、一个ResizePanel
或一个具有明确和固定大小的布局面板(即,不是fuild,例如,不是以父面板的百分比表示,而是以像素表示)
在这里,DockLayoutPanel
和SimpleLayoutPanel
之间的FlowPanel
打破了层次结构
您可能希望将流程面板
与标题面板
进行交易,将所有流程面板
放在标题(容器流程面板
)中,并将SimpleLayoutPanel
(或数据网格
)作为内容。尽管未实施
ProvidesResize
,HeaderPanel
尊重本合同,但仅限于其内容子项(这是关键:根据HeaderPanel
的大小以及页眉和页脚的固有大小调整内容子项的大小)
<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>