2012-01-13 10 views
5

सबसे पहले, मैं लंबे कोड के लिए माफ़ी मांगना चाहता हूं, वे बहुत सरल हैं, यह केवल p:selectOneMenu है जो 17 बार दोहराता है (यही कारण है कि यह लंबा है)। मुझे लगता है कि समस्या यह है कि यदि मेरे पास एक फॉर्म में p:selectOneMenu है, तो selectOneMenu उपयोगकर्ता खराब होने पर उपयोगकर्ता को तब तक ड्रॉप नहीं करता है जब तक कि मैं उस पर क्लिक नहीं करता (जब तक मैं selectOneMenu पर स्पैम क्लिक नहीं करता), सूची ड्रॉप नहीं होगी। क्या बहुत विचित्र है (यही कारण है कि मैं कोड है कि इस सूची में नीचे 17 बूंद प्रदर्शित पोस्ट) कि अगर यह केवल 1 या 2 selectOneMenu है तो यह ठीक काम करते हैं। यह केवल आईई 8 में होता है। यह काम ठीक है आईई 6,7 एफएफ, क्रोम।आईई 8 और प्राइमफेस पी: selectOneMenu misbehave जब बहुत सारे होते हैं: एक फॉर्म में selectOneMenu

एक बार फिर: लंबे कोड के लिए माफी माँगता

EDIT1: मैं बस अपने प्रबंधित सेम को foodList के लिए और अधिक प्रविष्टियों को जोड़ने के लिए मेरी कोड को संपादित करें। इस क्रम में मेरी मुद्दों

<div id="MainWrapper"> 
    <h:form id="myForm" styleClass="mainForm"> 
     <h:panelGrid columns="2" columnClasses="columnStyle,columnStyle"> 
      <h:panelGrid columns="3"> 
       Select Food1: 
       <p:selectOneMenu id="food1" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood1"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood1" for="food1"/> 

       Select Food2: 
       <p:selectOneMenu id="food2" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood2"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood" for="food2"/> 

       Select Food3: 
       <p:selectOneMenu id="food3" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood3"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood3" for="food3"/> 

       Select Food4: 
       <p:selectOneMenu id="food4" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood4"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood4" for="food4"/> 

       Select Food5: 
       <p:selectOneMenu id="food5" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood5"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood5" for="food5"/> 

       Select Food6: 
       <p:selectOneMenu id="food6" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood6"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood6" for="food6"/> 

       Select Food7: 
       <p:selectOneMenu id="food7" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood7"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood7" for="food7"/> 

       Select Food8: 
       <p:selectOneMenu id="food8" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood8"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood8" for="food8"/> 

       Select Food9: 
       <p:selectOneMenu id="food9" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood9"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood9" for="food9"/> 

       Select Food10: 
       <p:selectOneMenu id="food10" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood10"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood10" for="food10"/> 

       Select Food11: 
       <p:selectOneMenu id="food11" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood11"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood11" for="food11"/> 

       Select Food12: 
       <p:selectOneMenu id="food12" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood12"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood12" for="food12"/> 

       Select Food13: 
       <p:selectOneMenu id="food13" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood13"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood13" for="food13"/> 

       Select Food14: 
       <p:selectOneMenu id="food14" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood14"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood14" for="food14"/> 

       Select Food15: 
       <p:selectOneMenu id="food15" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood15"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood15" for="food15"/> 

       Select Food16: 
       <p:selectOneMenu id="food16" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood16"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood16" for="food16"/> 

       Select Food17: 
       <p:selectOneMenu id="food17" required="true" value="#{viewBean.selectedFood}" 
            styleClass="dropdown-width"> 
        <f:selectItem itemLabel="Select One" itemValue=""/> 
        <f:selectItems value="#{viewBean.foodList}"/> 
        <p:ajax update=":myForm:errorFood17"/> 
       </p:selectOneMenu> 
       <p:message id="errorFood17" for="food17"/> 
      </h:panelGrid> 
      There is supposed to be another table here 
     </h:panelGrid> 
     <p:commandButton value="submit" update="myForm"/> 
    </h:form> 
</div> 

प्रबंधित बीन

@ManagedBean 
@ViewScoped 
public class ViewBean implements Serializable { 

    private List<String> foodList; 
    private String selectedFood; 

    public ViewBean() { 
    } 

    @PostConstruct 
    public void init() { 

     foodList = new ArrayList<String>(); 
     foodList.add("Pizza"); 
     foodList.add("Pasta"); 
     foodList.add("Hamburger"); 
     foodList.add("Hot Dog"); 
     foodList.add("Spring Roll"); 
     foodList.add("Grill Fish"); 
     foodList.add("Chips"); 
     foodList.add("Ramen"); 
    } 
    //setter, getter 
} 

यहाँ मेरी सीएसएस है दोहराने के लिए महत्वपूर्ण है।

body{ 
    background-color: #EBEAE3; 
    font-family: Trebuchet; 
    margin: 0; 
} 

#MainWrapper{ 
    margin: 0 auto; 
    width: 1100px; 
    background-color: white; 
} 

.columnStyle{ 
    vertical-align: top; 
} 

.mainForm{ 
    margin-left: 68px; 
} 

.dropdown-width{ 
    width: 400px; 
} 

.ui-widget { 
    font-family: Arial,sans-serif; 
    font-size: 0.8em; 
} 

td .ui-selectonemenu { 
    display:block; 
} 

मैं इस डिबगिंग बहुत समय बिताया है, लेकिन तथ्य यह है कि यह जब वहाँ कई selectOneMenu कर रहे हैं और अच्छा काम जब देखते हैं 1 या 2 selectOneMenu सिर्फ मेरे मस्तिष्क बाहर रैक बग बाहर। यहाँ मेरी doctype

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
+0

मैं आईई 9 मोड में आईई 9 सेट में अपनी समस्या को पुन: उत्पन्न नहीं कर सकता (जो मेरे अनुभव के लिए IE8 विशिष्ट बग को पुन: उत्पन्न करने में काफी विश्वसनीय है)। दुर्भाग्य से इस मशीन पर असली आईई 8 नहीं है। क्या आपके पास अपने दृश्य या सीएसएस में अधिक है? सिद्धांत क्या है? आपके द्वारा वर्णित लक्षण एक जेड-इंडेक्स या शायद हैलेआउट संबंधित समस्या इंगित करते हैं। – BalusC

+0

हाय बलुस, मैंने अपनी पोस्ट पर अपना डॉक्टरेट पोस्ट किया है। मैंने ' 'के साथ प्रयास किया है, लेकिन यह अभी भी काम नहीं करता है। मैं आईई के विभिन्न संस्करणों का परीक्षण करने के लिए http://www.my-debugbar.com/wiki/IETester/HomePage का उपयोग करता हूं, दुर्भाग्य से मेरे पास परीक्षण करने के लिए IE9 लोड करने के लिए Vista या विंडो 7 नहीं है। मैं समस्या को अलग करने के लिए समय बिताता हूं, इसलिए मेरे द्वारा पोस्ट किया गया कोड यह है। –

+0

क्या आपने वास्तविक आईई 8 में परीक्षण किया था? आईईटीस्टर आसान है लेकिन 100% विश्वसनीय नहीं है। आईई 9 का अनुपालन मोड अधिक विश्वसनीय है। – BalusC

उत्तर

3

हम भी IE7 में इस समस्या है, यह ड्रॉपडाउन सूची प्राप्त करने के लिए एक tripleclick दिखाए जाने के लिए की आवश्यकता है। अविश्वसनीय समाधान aehh workarround: साइट है, जहाँ selectOneMenu :-) यह काम करता है इस्तेमाल किया गया है में सम्मिलित एक

<p:confirmDialog> 
</p:confirmDialog> 

+1

मैंने यहां इस मुद्दे की सूचना दी है। अगर आप टिप्पणी, या वोट प्रदान कर सकते हैं, तो यह शानदार होगा। धन्यवाद। http://code.google.com/p/primefaces/issues/detail?id=3352 –

+0

@Stefan: मैं इस जवाब को दस बार वोट देना चाहता हूं। मुझे विश्वास नहीं है कि यह काम करता है। ऊपर सूचीबद्ध अन्य सुझावों में से कोई भी नहीं था, लेकिन एक खाली पी जोड़ना: confirmDialog समस्या हल हो गई। यह भी आसान था, मैंने अभी जोड़ा: । आप एक नायक हो। –

6

मैं एक ही समस्या है। Primefaces 3.0.RC1 पर परीक्षण किया और 3.1 Mojarra 2.1.3 (FCS B02)

मैं एक समाधान नहीं मिला पर है, लेकिन मैं 3 समाधान पाया था:

1) अपने लेआउट बदलें ताकि ड्रॉपडाउन से अधिक नहीं हैं एक दूसरे को (या अधिक अन्य घटकों)

2) अपने पेज पर एक टैग के रूप में करने के लिए IE 7 संगतता जोड़ें। निम्नलिखित कथन टैग से ऊपर होना चाहिए। (पहली मेटा टैग, क्योंकि यह होना चाहिए)

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 

3) हमेशा एक खड़ी स्क्रॉलबार को दिखाने के लिए सुनिश्चित करें। ऐसा करने के लिए आप अपने CSS3 स्टाइलशीट के लिए निम्न जोड़ सकते हैं:

body { 
    overflow-y: scroll; 
} 

या सीएसएस 2:

body { 
    overflow: scroll; 
} 

मैं इसे अजीब कैसे इन समाधानों में से कुछ काम मिल जाए, लेकिन वे करते हैं। मैं खुद विकल्प 3 के लिए गया था।

मुझे आशा है कि जल्द ही एक फिक्स होगा।

+0

मुझे समझ में नहीं आता कि ड्रॉपडाउन अन्य घटकों (जेड-इंडेक्स?) से अधिक नहीं होने पर आपका क्या मतलब है लेकिन स्क्रॉल के साथ कामकाज मेरे लिए काम कर रहा है। अभी तक, ड्रॉपडाउन वाले मुद्दों को हल किया जाना प्रतीत होता है। इसे कुछ परीक्षणों की जरूरत है, लेकिन उम्मीद है कि यह खत्म हो गया है।यह प्रदर्शित होने से पहले तत्वों के आकार की गणना करते समय प्राइमफेस द्वारा उपयोग की जाने वाली काफी सीधी चालों के साथ समस्या प्रतीत होती है: दृश्यता वाले कंटेनर का उपयोग करके: छिपा हुआ और प्रदर्शित नहीं: कोई भी नहीं। –

+0

सीएसएस समाधान आईई 8.0.7601.17514 पर मेरे लिए काम किया। बहुत धन्यवाद! –

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