2012-02-13 16 views
2

Primefaces p:selectOneMenuコンポーネントは、以前選択した項目にフォーカスを持っていないようです。私は国のメニューを持っている場合たとえば、Primefaces selectOneMenuは、再オープン時に選択した項目にフォーカスを保持しません。

<p:selectOneMenu id="countryMenu" value="#{myBean.selectedCountry}"> 
     <f:selectItem value="#{null}" itemLabel="Please select a Country..."/> 
     <f:selectItems value="#{myBean.countries}" var="country" 
         itemValue="#{country.code}" 
         itemLabel="#{country.name}"/> 
     <p:ajax update="anotherComponent"/> 
    </p:selectOneMenu> 

を次のように設定し、私は、リストから国を選択し、それは最初から国のリストが表示され、再びメニューをクリックしてください。 に選ばれた国を保持しています。スクロールしてフォーカスしません。

標準のJSF h:selectOneMenuは、予想される動作を表示します。これは、以前に選択した国が表示された状態で開きます。

これにはいくつかのトリックがありますか、これはバグですか?

また、キーボード入力(メニューにフォーカスを合わせてもメニューが開いていない場合は上/下を押す)に反応する方法で、少し不快です。number of other quirksがあります。

私が使用しています:

  • Primefaces 3.1
  • Glassfishのを3.1.1
  • のNetBeans 7.1
+0

これは明らかにPrimeFacesのバグ(少なくとも機能の欠如)です。あなたはおそらくそれについて既に知っているでしょう。そこにバグを報告したり、レンダラーやJavaScriptを書き換えたり上書きしたりすることを提案する以外には、ここではあまり役に立ちません。 – BalusC

+0

FYI、Primefaceの問題を検索したり報告したりできます:http://code.google.com/p/primefaces/issues/list –

+0

@maple_shaftこの質問を投稿する前に見ましたが、現在の問題はありませんこれに関連する。問題を投稿する前に本当にバグであることを確認したかっただけです。 –

答えて

0

これは修正されているようです。

私は次のような結果とPrimefacesの様々なバージョンでいくつかのテスト走っ:

  • 3.1 -

  • 3.3を動作しませんでした - - のdidn

  • 3.2を動作しませんでした(以前に選択した値が短く点滅し、最初のメニュー項目が表示されます)

  • 3。4 -

は注意期待どおりに動作:3.3から3.4にアップグレードするとき、私は(ChromeとFirefoxで)私のブラウザのキャッシュをクリアする必要がありました(私はこれをしたまでの項目がすべてでは選択できませんでした) 。

0

それはバグではありません。 CountryクラスのequalsTo(Object o)compareTo(Object o)メソッドをオーバーライドするだけです。

これを実行しても問題なく動作します。

+0

これはなぜ動作するのか説明しません'h:selectOneMenu'です。 'compareTo()'は不要で、使用されません。 'equalsTo()'は存在しません、私はあなたが 'equals()'を意味すると仮定します。しかし、これが欠けていたり、実装が不適切であれば、 'h:selectOneMenu'も失敗します。 – BalusC

+1

Primefacesショーケース(http://www.primefaces.org/showcase/ui/selectOneMenu.jsfの 'pojo'の例)と全く同じ問題があります。最近、私はそれを報告します。 OhとBalusC - あなたの飽き飽きしたSOのおかげで、私が見つけたほぼすべての有用なJSF記事にあなたの名前がどこかにあります! –

0

Primefaces 3.4(現時点では現在のバージョン)に更新しても、これと同様の動作が行われますが、これは予期しない動作です。

イベントの最初の項目がある場合noSelectionOption="true"あなたが見直しのバグのようです同じ動作を取得し、それがherehereを報告しています。また、フォーラムthreadについてもあります。

しかし、あなたはそれが私のためにこの問題を解決して、itemDisabledプロパティを使用して試みることができる:

<p:selectOneMenu id="hero" value="#{bean.hero}"> 
    <f:selectItem itemLabel="Select..." itemDisabled="true" /> 
    <f:selectItems var="item" value="#{bean.heroes}" itemLabel="#{item.name}" /> 
</p:selectOneMenu> 

私はそれが役に立てば幸い。

+0

これらの問題は無関係であると思われ、 'itemDisabled'は何の違いもありません。私は問題を提起したので、うまくいけばすぐに修正されるでしょう:) –

関連する問題