Выпадающий список JSPX

Я пишу веб-приложение Oracle ADF Fusion, используя jdeveloper 11.1.2.0.0. На странице jspx у меня есть раскрывающийся список, который заполняется моделью меню. Я хочу, чтобы он отображался расширенным при загрузке страницы в браузере. Пожалуйста, дайте мне идею.

Спасибо, Самира.


person samme4life    schedule 20.04.2012    source источник


Ответы (3)


Рассмотрите возможность использования другого типа компонента вместо раскрывающегося списка. Например, как насчет того, чтобы просто использовать итератор для отображения списка параметров?

person Shay Shmeltzer    schedule 20.04.2012
comment
Я согласен, используйте итератор или список. Это предварительно развернутое раскрывающееся меню нарушает принцип наименьшего удивления. - person Billy Bob Bain; 24.04.2012

Не существует программного (имеется в виду javascript) способа запуска раскрытия собственного выпадающего элемента. По совету других, рассмотрите возможность использования другой стратегии пользовательского интерфейса. Может быть, af:table, который можно выбрать?

person Hyangelo    schedule 24.04.2012

это правда, что нет прямого или программного способа эмулировать запуск события щелчка в раскрывающемся списке, чтобы открыть его, но вы можете сделать это с помощью следующего кода. Что вам нужно:

  1. jquery-1.7.1.min.js
  2. ExpandSelect.js

Компонент, который предоставляет список SelectItem:

import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

public class BackBean {
    private List<SelectItem> options;

    public BackBean() {
        options = new ArrayList<SelectItem>(0);
        options.add(new SelectItem("Option 1", "Option 1"));
        options.add(new SelectItem("Option 2", "Option 2"));
        options.add(new SelectItem("Option 3", "Option 3"));
        options.add(new SelectItem("Option 4", "Option 4"));
        options.add(new SelectItem("Option 5", "Option 5"));
    }

    public void setOptions(List<SelectItem> options) {
        this.options = options;
    }

    public List<SelectItem> getOptions() {
        return options;
    }
}

И страница jspx:

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
        <af:document title="Home" id="d1">
            <af:form id="f1">
                <af:resource type="javascript" source="/js/jquery-1.7.1.min.js"/>
                <af:resource type="javascript" source="/js/ExpandSelect.js"/>
                <af:panelStretchLayout id="psl1">
                    <f:facet name="center">
                        <af:selectOneChoice label="Menu" id="soc1" clientComponent="true" styleClass="menu">
                            <f:selectItems value="#{backingBeanScope.backBean.options}" id="si1"/>
                        </af:selectOneChoice>
                    </f:facet>
                </af:panelStretchLayout>
            </af:form>            
            <af:resource type="javascript">
                $(document).ready(function(){                    
                    ExpandSelect(document.getElementById($($('.menu > tbody > tr > td').next().find('select')).attr('id')));
                });
            </af:resource>            
        </af:document>
    </f:view>
</jsp:root>

Вот скриншот, который у меня есть: введите здесь описание изображения

Надеюсь, это поможет. Дайте мне знать ваши отзывы.

person Tapas Bose    schedule 25.04.2012