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

Panel grid layout or stretch panel?

我正在创建一个基于模板的页面,以显示带有结果的查询 table,当我 select 结果与作为表单显示在侧面的数据相同时。 我已经尝试插入带有一些单元格的面板网格布局,因此每个单元格都会有查询表单,另一个是结果 table 和我必须插入的其他详细信息。 这是基本布局:

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

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

谢谢

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

- 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=stretch。 从文档: http://docs.oracle.com/cd/E26098_01/apirefs.1112/e17491/tagdoc/af_gridCell.html

如果 (1) 它是 gridCell 内部的唯一组件,(2) 单元格的 "halign" 是 "stretch",(3) 单元格的 "valign"是"stretch",(4)单元格的有效宽度是非自动的,(5)如果单元格的有效高度是非自动的。

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

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

面板网格的好处是它与 HTML 表格的布局方式相匹配,因此与其他 ADF 布局组件相比,它提供了良好的性能。