2013-03-19 13 views
5

मेरे पास चयन करें चेकबॉक्सबॉक्स (प्राइमफ़ेस घटक) बहुत सारी प्रविष्टियों के साथ। हालांकि, उपयोगकर्ता को अधिकतम का चयन करने की अनुमति है। 3 आइटम SelectCheckBoxMenu लगभग सभी मेरी आवश्यकताओं को पूरा करता है, केवल समस्या यह है कि यह सभी वस्तुओं का चयन करने की संभावना प्रदान करता है, जिन्हें मुझे स्पष्ट रूप से इस मामले में आवश्यकता नहीं है।SelectCheckboxMenu - "ऑल-चयन" अक्षम करें

क्या "चयन-सब" विकल्प को अक्षम करने की कोई संभावना है? मैं अधिकतम के लिए प्रविष्टियों की जांच करने के लिए एक घटना का उपयोग कर रहा हूँ। 3. मुझे लगता है कि मैं "चयन-सब" के लिए ऐसा ही कर सकता हूं और उन्हें चुनने की अनुमति नहीं देता, लेकिन मैं "select-all" विकल्प बिल्कुल नहीं चाहता हूं।

कोड नीचे

:

<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

यही बात एक combobox नहीं है:

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

अब styleClass के बजाय panelStyleClass -attribute का उपयोग करें। आपका सीएसएस वर्ग का नाम भ्रामक है और स्वयं दस्तावेज नहीं है। – BalusC

+0

हां, आप सही हैं। मैंने इसे संशोधित किया। – leostiw

उत्तर

5

आप अपने सीएसएस फ़ाइल के लिए सीएसएस नियम जोड़ सकते हैं

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

आप चाहिए prependId="false" अपने h:form पर जोड़ें, या यदि आप prependId="false" जोड़ना नहीं चाहते हैं तो आपबदल सकते हैं #myForm\3A titel .ui-chkbox .ui-widget की तरह कुछ में १७३३२०७३२१० चयनकर्ता (: आईडी विभाजक को संभालने के लिए)


मामले में आप पूरे फिल्टर पंक्ति आप सेट कर सकते हैं

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

हमेशा के रूप में धन्यवाद, मैंने दोनों विकल्पों की कोशिश की, लेकिन यह काम नहीं किया। हालांकि, आप मुझे सही तरीके से लाए, सीएसएस नियम जवाब था। मैंने चेकबॉक्समेनू से हेडर को "हटा दिया", जो समझ में आता है, यह वही था जो मुझे चाहिए था। '.ui-selectcheckboxmenu-header { \t डिस्प्ले: कोई नहीं; } 'मैंने प्राइमफेस सीएसएस को बदल दिया क्योंकि यह मेरे प्रोजेक्ट के लिए समझ में आता है, लेकिन अगर किसी और के पास एक ही समस्या है, तो जागरूक रहें, इसे केवल चुनिंदाबॉक्समेनू के लिए करें। डैनियल फिर से धन्यवाद। – leostiw

+1

आप प्राइमफैक्स सीएसएस को बेहतर नहीं बदलते हैं, इसके बजाय इस ट्यूएल को अपनी सीएसएस फ़ाइल में जोड़ें और सुनिश्चित करें कि यह आखिरी बार लोड हो जाएगा ... इसलिए यह प्राइमफेस सीएसएस को ओवरराइड कर देगा ... – Daniel

+0

ओह क्षमा करें, मैंने खुद को बुरी तरह व्यक्त किया, मैंने नहीं किया primefaces.css को बदलें, मैंने इस कोड को अपने स्वयं के सीएसएस में जोड़ा। – leostiw

11

पिछले जवाब PrimeFaces के तहत मेरे लिए काम नहीं किया निकालना चाहते हैं 5.0, इसलिए मैंने जेनरेट किए गए HTML में गहराई से देखा और पीएफ 5 के लिए भी एक समाधान मिला।

लिए PrimeFaces 5.0 आप इस तरह "सभी का चयन करें" चेकबॉक्स को दूर कर सकते हैं:

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

सरल और प्रीफेक्ट समाधान, धन्यवाद! –

संबंधित मुद्दे