2012-06-04 39 views
6

PrimeFaces takımından KomutDüğmesi bir simge belirlemenizi sağlar/devre simgesini etkinleştirmek:PrimeFaces KomutDüğmesi: Dinamik

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

Ancak, ben/etkinleştirmek bir JSF bağlı simge fasulye özelliğini yönetilen devre dışı bırakmanız gerekir.

Ben Bu farklı simgeler seçtiğiniz için çalışır, ancak tamamen simgesini devre dışı bırakmak için izin vermez

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

çalıştı (yani icon= özniteliği olmadan gibi aynı işleme almak). Boş bir dize getIconClass() içinde döndürebilir, ancak PrimeFaces düğmenin içindeki simge için ek <span> eklemeye devam eder ve CSS stili bu açıklığın varsayılan bir simge ile görünmesine neden olur.

PrimeFaces'a "Hiç simge istemiyorum" (icon= özniteliğinin tümünü almayıp hariç) anlatmanın bir yolu var mı?

+0

denemede ile

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

'getIconClass()' – Daniel

+0

@Daniel içinde 'null' dönmek için: Bu işe görünmüyor. Bunu yaparsam, varsayılan simge hala gösterilmektedir. Görünüşe göre, "null", JSF içinde "" "ye çevrilir. – sleske

cevap

6

Düğmeyi çoğaltmadan 2 yolu düşünebilirim.

  1. Besleme şartlı <c:if> ilave edilir <f:attribute> ikon.


  2. <p:commandButton ...> 
        <c:if test="#{not empty bean.icon}"><f:attribute name="icon" value="#{bean.icon}" /></c:if> 
    </p:commandButton> 
    
    tamamen simgeyi gizleyen ve koşullu bunu arz bir stil sınıfını ayarlayın.

    <p:commandButton ... icon="#{bean.icon}" styleClass="#{empty bean.icon ? 'hideicon' : ''}" /> 
    
+0

Hm, kullanarak sorunlu görünüyor, daha sonra Stateless JSF kullanmaya karar verebiliriz (http://industrieit.com/blog/2011/11/stateless-jsf-high-performance-zero-per-request-memory-overhead/) ve bu ile çalışmayacaktı. CSS hilesi biraz çirkin görünüyor, ama muhtemelen en iyi fikir. – sleske

+1

Bu vatansız yaklaşım, "" koşulu kapsamı belirlendiğinde ve kapsam oluşturulmadığında teorik olarak çalışmalıdır. Aynı görünüm yeniden kullanılırken her istekte değişiklik olabiliyorsa, o zaman bu durum vatansız JSF'de çalışmayacaktır. – BalusC

+0

Şimdilik yukarıda ana hatlarıyla belirtilen CSS yaklaşımını kullanacağız. En az müdahaleci bir seçenek gibi görünüyordu. Teşekkürler! – sleske

2

Yerine geçici bir çözüm 2 komut düğmesine sahip olacaktır. Simge tanımı olan ve olmayan bir tanesi. Ve sonra doğru olanı yapın.

+0

Evet, bu işe yaramalı, ama artıklıktan dolayı hoş bir çözüm değil. – sleske

+0

Doğru. BalusC CSS çözümleri bana çirkin gözükmüyor. – roel

İlgili konular