Oracle11g 面板网格布局还是拉伸面板?

Oracle11g 面板网格布局还是拉伸面板?,oracle11g,oracle-adf,jdeveloper,jspx,Oracle11g,Oracle Adf,Jdeveloper,Jspx,我正在创建一个基于模板的页面,以显示带有结果表的查询,当我选择一个结果时,将显示与表单侧边显示的数据相同的数据。 我试着用一些单元格插入一个面板网格布局,这样每个单元格都有一个查询表单,另一个到结果表,以及我必须插入的其他细节。 这是基本布局: 当我更改单元格位置以便查看表格和其他所有内容时,会发生以下两种情况之一:表格填满所有页面(宽度),或者它保持非常小,我必须使用滚动条查看所有数据。我想要的是表格使用单元格中的所有可用宽度 有人能帮我用网格布局来做这件事吗?或者有没有其他方法,比如我可以

我正在创建一个基于模板的页面,以显示带有结果表的查询,当我选择一个结果时,将显示与表单侧边显示的数据相同的数据。 我试着用一些单元格插入一个面板网格布局,这样每个单元格都有一个查询表单,另一个到结果表,以及我必须插入的其他细节。 这是基本布局:

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

有人能帮我用网格布局来做这件事吗?或者有没有其他方法,比如我可以使用拉伸布局


谢谢

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

- 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

我要说的是,只需使用两个嵌套的拉伸布局,就会得到良好且干净的结果

<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>


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

您是如何定义单元格的?将第一个和最后一个单元格宽度设置为固定大小。 然后中间的单元格应具有halign=拉伸。 从文档:


如果(1)它是gridCell内部的唯一组件,(2)单元格的“halign”是“stretch”;(3)单元格的“valign”是“stretch”;(4)单元格的有效宽度是非自动的,以及(5)单元格的有效高度是非自动的,则此组件可以拉伸子组件。

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

ADF应用程序通常从一个可拉伸的外部布局容器开始,该容器可以拉伸其子级,从而使外部布局面板具有100%高的行和100%宽的网格


panel grid的优点是它与HTML表格的布局方式相匹配,因此与其他ADF布局组件相比,它提供了良好的性能。

Uh-oh,避免这样做。不要将拉伸容器放入流动容器中。感谢@Nagh指出错误。我现在不需要更正它,因为您已经用正确的方法回答了它:-)