VwpFAQDropdownNavigationJa

ドロップダウンリスト: ほかのページへナビゲートするドロップダウンリストの使い方を教えてください。


1. 「ドロップダウンリスト」コンポーネントを右クリックし、「変更時に自動送信」を選択します。

2. ページナビゲーションエディタを使用して、ドロップダウンリストを持つページから別のページへのリンクを作成します。以降の手順は、3 つのリンク (case1、case2、case3) があるとして記述されています。

3. ページナビゲーションエディタを閉じて、ドロップダウンリストコンポーネントを持つページのビジュアルデザイナーに戻ります。ドロップダウンリストコンポーネントを右クリックし、「デフォルトオプションを設定」を選択します。(リスト項目をプログラムで設定する方法については、チュートリアル「コンポーネント」を参照してください。)

4. 各項目の値にページナビゲーションエディタで追加したリンク名 (case1、case2、case3) を 1 つずつ設定します。

5. ビジュアルデザイナーで、ドロップダウンリストコンポーネントをダブルクリックします。Java ソースエディタに、ドロップダウンリストの processValueChange イベントハンドラが開きます。

6. そのメソッドを次のコードのように変更します (コンポーネント id は、実際のコンポーネントに合わせてください)。

    public void dropDown1_processValueChange(ValueChangeEvent event) {
        Application application = getApplication();
        NavigationHandler navigator = application.getNavigationHandler();
        FacesContext facesContext = getFacesContext();
        try {
            navigator.handleNavigation(facesContext, null,(String) getDropDown1().getSelected());
        } catch (Exception e) {
            log("can't navigate to " + (String) getDropDown1().getSelected());
        }
    }


7. インポートを修正します。

8. 実行してテストします。ページが最初に表示されたときに、一番目の項目を選択しても processValueChange が呼び出されないことを確認します。これを修正する 1 つの方法は、一番目の項目の表示と値を別の値に変更することです。たとえば、表示を「1 を選択」 にして、その値を「none」に設定します。それから、processValueChange メソッド本体を次のような if 文でラップします。

if (!"none".equals(getDropDown1().getSelected()))

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo