0

jdeveloper 11.1.2.0.0を使用してOracle ADF Fusion Webアプリを作成しています。jspx ページには、メニュー モデルによって入力されるドロップ ダウン リストがあります。ページがブラウザにロードされたときに展開して表示したい。アイデアをください。

ありがとうございます

4

3 に答える 3

1

ドロップダウンの代わりに別のタイプのコンポーネントを使用することを検討してください。たとえば、イテレータを使用してオプションのリストを表示するのはどうですか?

于 2012-04-20T23:38:06.687 に答える
0

ドロップダウンでクリック イベントのトリガーをエミュレートしてそれを開く直接的またはプログラム的な方法がないことは事実ですが、次のコードでこれを行うことができます。必要なものは次のとおりです。

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

SelectItem のリストを提供する Bean は次のとおりです。

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>

ここに私が持っているスクリーンショットがあります: ここに画像の説明を入力

これが役立つことを願っています。フィードバックをお寄せください。

于 2012-04-25T18:24:22.250 に答える
0

ネイティブ ドロップダウン要素の開示をトリガーするプログラムによる (JavaScript を意味する) 方法はありません。他の人がアドバイスしたように、別の UI 戦略の使用を検討してください。たぶん、選択可能な af:table ですか?

于 2012-04-24T15:41:17.857 に答える