7

PrimeFacesのCommandButtonを使用すると、アイコンを指定できます。

<p:commandButton value="Press me" icon="redBall" ... />

ただし、JSF管理対象Beanのプロパティに応じて、アイコンを有効/無効にする必要があります。

私は試した

<p:commandButton value="Press me" icon="#{bean.iconClass}" ... />

これは別のアイコンを選択する場合に機能しますが、アイコンを完全に無効にすることはできません(つまり、属性がない場合と同じレンダリングを取得しicon=ます)。で空の文字列を返すことはできますgetIconClass()が、PrimeFacesは<span>ボタン内のアイコンに余分な文字列をレンダリングし、CSSスタイルによってこのスパンがデフォルトのアイコンで表示されます。

PrimeFacesに「アイコンがまったく必要ない」と伝える方法はありますか(icon=属性を完全に削除する以外)?

4

2 に答える 2

7

ボタンを複製せずに2つの方法が考えられます。

  1. <f:attribute>によって条件付きで追加されるアイコンを指定します<c:if>

    <p:commandButton ...>
        <c:if test="#{not empty bean.icon}"><f:attribute name="icon" value="#{bean.icon}" /></c:if>
    </p:commandButton>
    

  2. アイコンを完全に非表示にするスタイル クラスを設定し、条件付きで提供します。

    .hideicon .ui-icon { display: none; }
    .hideicon .ui-button-text { padding-left: 1em; }
    

    <p:commandButton ... icon="#{bean.icon}" styleClass="#{empty bean.icon ? 'hideicon' : ''}" />
    
于 2012-06-04T13:19:49.470 に答える
2

不十分な回避策は、2 つのコマンド ボタンを使用することです。アイコン定義のあるものとないもの。そして、正しいものをレンダリングします。

于 2012-06-04T09:46:19.017 に答える