2013-03-19 91 views
5

我有一個SelectCheckBoxMenu(Primefaces組件)有大量條目。但是,用戶可以選擇最大。 3項。 SelectCheckBoxMenu fullfils幾乎所有我的要求,唯一的問題是,它提供了選擇所有項目的可能性,我明顯不需要在這種情況下。SelectCheckboxMenu - 禁用「全選」

是否有任何禁用「全選」選項的餘地?我正在使用事件來檢查最大條目。 3.我認爲我可以爲「全選」做同樣的事情,不允許他們選擇它們,但我不想讓「全選」選項

代碼如下:

<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-展示例如:http://www.primefaces.org/showcase/ui/selectCheckboxMenu.jsf

+1

那東西是不是一個組合框。您的CSS類名稱具有誤導性,而不是自我記錄。 – BalusC 2013-03-19 12:09:59

+0

是的,你是對的。我修改了它。 – leostiw 2013-03-19 13:25:27

回答

5

您可以CSS規則添加到您的css文件

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

你應該將prependId="false"添加到您的h:form中,或者如果您不想添加prependId="false"您可以更改#titel .ui-chkbox .ui-widget選擇成類似#myForm\3A titel .ui-chkbox .ui-widget(處理: ID分隔符)


如果你想整個過濾器的行刪除,您可以設置

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

一如既往地感謝,我嘗試了兩種選擇,但它沒有奏效。然而,你給我帶來了正確的方式,css規則就是答案。我從checkboxmenu中「刪除」了標題,這是有道理的,這正是我所需要的。 '.ui-selectcheckboxmenu-header { \t display:none; }'我改變了primefaces css,因爲它對我的項目是有意義的,但是如果其他人有同樣的問題,請注意,只爲您需要的selectboxmenu做。再次感謝丹尼爾。 – leostiw 2013-03-19 10:23:14

+1

你最好不要改變primefacs css,而是將這個tule添加到你自己的css文件中,並確保它將被最後加載......所以它會覆蓋primefaces css ... – Daniel 2013-03-19 10:33:37

+0

哦,對不起,我表達得很糟糕,我沒有改變primefaces.css,我在我自己的CSS中添加了這個代碼。 – leostiw 2013-03-19 10:43:42

11

以前的答案並沒有爲我下PrimeFaces工作5.0,所以我深入瞭解了生成的HTML,並找到了PF5的解決方案。

對於PrimeFaces 5.0可以去掉 「全選」 複選框,這樣的:

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

現在使用panelStyleClass -attribute代替styleClass

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

簡單而完美的解決方案,謝謝! – 2015-05-09 14:13:57