2012-04-22 73 views
2

GWT的展示,還有很多例子,我發現,總有一個非常簡單的DataGrid的用法:GWT的DataGrid與SimpleLayoutPanel不會出現垂直滾動條

  1. 你在你的UiBinder的定義元素的DataGrid ,並且您將其設置爲要提供的字段。
  2. 在視圖構造你初始化格 - 定義列並添加
  3. UI粘合劑產生
  4. 一切它表現爲預期的數據..

但常見的情況是不所以是靜態的:你通常設置網格,但沒有數據,只有在用戶做了某些事情(點擊按鈕等)後纔可以提供這些數據。

我花了很多時間在複雜的UI佈局中呈現DataGrid: 爲了做到這一點,網格現在託管在SimpleLayoutPanel中,該SimpleLayoutPanel具有100%的寬度和高度,並且此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獲得相同的高度!並因爲之前有一些標籤等 - 它溢出東面板的大小..

任何幫助?

UPDATE: 看來,如果我刪除一切從東部面板,離開DataGrid的只有SimpleLayoutPanel - 它的工作原理的發現! 但我確實需要在網格上方添加所有這些額外的標籤 - 而且我找不到解決方案。 ??

回答

3

參見https://developers.google.com/web-toolkit/doc/latest/DevGuideUiPanels

佈局面板(RequiresResize窗口小部件)必須被嵌套到其他佈局面板(ProvidesResize窗口小部件)一路到無論是RootLayoutPanel,一個ResizePanel或者以顯式和固定大小的佈局面板(即不是熔合,例如,不以父面板的百分比給出,而是以像素給出)。

在這裏,DockLayoutPanelSimpleLayoutPanel之間的FlowPanel打破了層次結構。

你可能想用HeaderPanel交易的FlowPanel,把所有的FlowPanel S IN的(在容器FlowPanel)和您SimpleLayoutPanel(或您的Datagrid)作爲內容
儘管沒有實施ProvidesResizeHeaderPanel尊重這份合同,但其內容孩子只(這是問題的癥結所在:大小內容孩子取決於HeaderPanel的大小和內在大小的和頁腳