Сетка панели или растянутая панель?

Я создаю страницу на основе шаблона, чтобы представить запрос с таблицей результатов, и когда я выбираю результат, те же данные, которые будут представлены сбоку в виде формы. Я попытался сделать это, вставив макет сетки панели с некоторыми ячейками, поэтому каждая ячейка будет иметь форму запроса, другую - в таблицу результатов и другие детали, которые мне нужно вставить. Это базовый макет: введите здесь описание изображения

Когда я изменяю свойства ячейки, чтобы видеть таблицу и все остальное, происходит одно из двух: таблица заполняет всю страницу (ширину) или остается очень маленькой, и мне приходится использовать полосу прокрутки, чтобы увидеть все данные. Я хочу, чтобы таблица использовала всю ширину, доступную в ячейке.

Может ли кто-нибудь помочь мне сделать это с помощью макета сетки или есть другой способ, например, макет с растяжкой, который я могу использовать?

Спасибо


person Lopez    schedule 27.01.2015    source источник


Ответы (4)


Я бы сказал, что просто используйте два вложенных растянутых макета, это даст вам хороший и чистый результат.

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

Не забудьте установить параметр растяжения для компонентов, которым это необходимо.

person Nagh    schedule 28.01.2015

Предполагая, что меню и заголовок являются частью шаблона, который вы используете на своей странице, вот один из способов создания структуры макета.

- 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
person amishra    schedule 28.01.2015
comment
О-о, избегайте таких вещей. Не помещайте растягивающиеся контейнеры в потоковые контейнеры. - person Nagh; 28.01.2015
comment
Спасибо @Nagh за указание на ошибку. Мне не нужно исправлять это сейчас, поскольку вы уже ответили на него с правильным подходом :-) - person amishra; 28.01.2015

Как вы определили свои клетки? Установите для ширины первой и последней ячейки фиксированный размер. Тогда средняя ячейка должна иметь 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) если эффективная высота ячейки не является автоматической.

person Shay Shmeltzer    schedule 03.02.2015

Я предлагаю использовать компоновку сетки панели, улучшенный компонент компоновки сетки панели ADF в версии 11.1.2. высота строки и 100% ширина

Преимущество сетки панелей в том, что она соответствует способу размещения таблиц HTML, поэтому обеспечивает хорошую производительность по сравнению с другими компонентами макета ADF.

person Ali Metwally    schedule 26.08.2018