2013-03-19 16 views
5

Çok sayıda girdiyle SelectCheckBoxMenu (Primefaces bileşeni) var. Bununla birlikte, kullanıcının maks. 3 ürün. SelectCheckBoxMenu fullfils neredeyse tüm gereksinimlerimi, tek sorun, bu durumda açıkça gerek yok tüm öğeleri seçmek için bir olasılık sunuyor olmasıdır.SelectCheckboxMenu - "tüm seçimler" i devre dışı bırak

"Tümünü seç" seçeneğini devre dışı bırakmak için herhangi bir olanak var mı? En fazla girişleri kontrol etmek için bir olay kullanıyorum. 3. Ben "hepsini seçmek" için aynı şeyi yapabilirim ve onları seçmek için izin veremiyorum, ama "Tümünü seç" seçeneği hiç sahip olmak istemiyorum. Kodun altında

: Ayrıca

<p:selectCheckboxMenu value="#{services.titelId}" id="titel" 
      panelStyle="width:160px;" rendered="#{!services.isFirma()}" 
      label="#{services.prepareTitel()}" style="width:160px;" 
      styleClass="checkbox"> 
      <f:selectItems value="#{meta.getAkadTitelList()}" /> 
      <p:ajax event="change" listener="#{services.validateTitel()}" 
       update="titel" process="@this" /> 
      <p:ajax event="toggleSelect" update="titel" process="@this" /> 
</p:selectCheckboxMenu> 

, primefaces-vitrin örnek link: http://www.primefaces.org/showcase/ui/selectCheckboxMenu.jsf

+1

O şey bir combobox değildir:

.without-selectall .ui-selectcheckboxmenu-header .ui-chkbox { display: none; } 

Şimdi yerine styleClass ait panelStyleClass -attribute kullanın. CSS sınıf adınız yanıltıcıdır ve kendi kendini belgelememektedir. – BalusC

+0

Evet, haklısınız. Onu revize ettim. – leostiw

cevap

5

Sen css dosyasına css kuralı ekleyebilir

#titel .ui-chkbox .ui-widget { 
    display:none; 
} 

Gitmelisiniz prependId="false"'u h:form'a ekleyin veya prependId="false"'u eklemek istemiyorsanız'ü değiştirebilirsiniz. #myForm\3A titel .ui-chkbox .ui-widget gibi bir şeyseçici durumda


tamamını filtre satır,

<p:selectCheckboxMenu filter="false".... 
+0

Her zamanki gibi, her iki seçeneği de denedim, ama işe yaramadı. Ancak beni doğru yola getirdin, css kuralı cevaptı. Başlığı checkboxmenu'dan çıkardım, bu mantıklı, ihtiyacım olan buydu. .ui-selectcheckboxmenu-header { \t ekranı: yok; } 'Projenin benim için anlamlı olduğunu düşündüğüm, çünkü cc'leri değiştirdim, ama eğer başka biri aynı sorunları yaşıyorsa, farkında olun, sadece ihtiyacınız olan selectboxmenu için yapın. Tekrar teşekkürler Daniel. – leostiw

+1

Eğer primefacs css değiştirmemek yerine, bu tule kendi css dosyasına ekleyin ve en son yükleneceğinden emin olun ... bu yüzden bu cümle ilkelerini geçersiz kılar ... – Daniel

+0

Üzgünüm, kendimi kötü ifade ettim, primefaces.css değiştirin, bu kodu kendi css'ime ekledim. – leostiw

11

önceki cevabı PrimeFaces altında benim için işe yaramadı ayarlayabilirsiniz kaldırılmasını istediğiniz (: id seperatör işlemek için) 5.0, böylece oluşturulan HTML'ye daha derin bir bakış attı ve PF5 için de bir çözüm buldum. Eğer "tümünü seç" onay kutusu böyle kaldırabilir 5,0

için PrimeFaces:

<p:selectCheckboxMenu ... 
    panelStyleClass="without-selectall" 
> 
+0

Basit ve üstün çözüm, Teşekkürler! –

İlgili konular