面板网格布局或拉伸面板?

时间:2015-01-27 20:18:00

标签: oracle11g oracle-adf jdeveloper jspx

我正在创建一个基于模板的页面来呈现带有结果表的查询,当我选择一个结果时,相同的数据将作为表单呈现在一边。 我试着用一些单元格插入一个面板网格布局,所以每个单元格都有查询表单,另一个单元格将包含结果表格和其他必须插入的细节。 这是基本布局: enter image description here

当我更改单元格的属性以便我可以看到表格和其他所有内容时,会发生以下两种情况之一:表格填满所有页面(宽度)或者它保持非常小,我必须使用滚动条查看所有内容数据。我想要的是该表使用单元格中可用的所有宽度。

有人可以通过网格布局帮助我这样做吗?还是有其他方式,例如我可以使用的拉伸布局?

由于

4 个答案:

答案 0 :(得分:1)

我会说只使用两个嵌套的拉伸布局,会给你带来干净利落的结果。

<af:panelStretchLayout>
  <f:facet name="top">
    <!-- fixed size header -->
  </f:facet>
  <f:facet name="start">
    <!-- fixed size menu -->
  </f:facet>
  <f:facet name="center">
    <af:panelStretchLayout>
      <f:facet name="top">
        <!-- search form -->
      </f:facet>
      <f:facet name="end">
        <!-- right block -->
      </f:facet>
      <f:facet name="center">
        <!-- table -->
      </f:facet>
    </af:panelStretchLayout>
  </f:facet>
</af:panelStretchLayout>

不要忘记为需要它的组件设置拉伸选项。

答案 1 :(得分:0)

假设菜单和标题是您在页面中使用的模板的一部分,这是实现布局结构的一种方法

- panelStretchLayout
    - facet name="center" 
        - panelGroupLayout (layout="vertical" styleClass="AFStretchWidth") 
            - search form
            - panelStretchLayout (endWidth="100px" dimensionsFrom="auto")
                - facet name="center"
                    - table ( columnStretching="last" styleClass="AFStretchWidth")
                - facet name="end"
                    - form

答案 2 :(得分:0)

你是如何定义细胞的?将第一个和最后一个单元格宽度设置为固定大小。 然后中间单元应该具有halign = stretch。 来自doc: http://docs.oracle.com/cd/E26098_01/apirefs.1112/e17491/tagdoc/af_gridCell.html

如果(1)它是gridCell内部的唯一组件,则该组件可以拉伸子组件,(2)单元格&#34; halign&#34;是&#34;伸展&#34;,(3)细胞&#34; valign&#34;是&#34;拉伸&#34;,(4)单元格的有效宽度是非自动的,(5)如果单元格的有效高度是非自动的。

答案 3 :(得分:0)

我建议使用面板网格布局,这是ADF在11.1.2版中改进的面板网格布局组件。

ADF应用程序通常从可拉伸的外部布局容器开始,该容器将其子级拉伸,因此使外部布局面板网格的行高为100%,宽度为100%

面板网格的优点是它与HTML表格的布局方式匹配,因此与其他ADF布局组件相比,它具有良好的性能。