2012-06-24 10 views
13

मैं जीडब्ल्यूटी के लिए नया हूं। मैं एक साधारण जीडब्ल्यूटी प्रोग्राम लिख रहा हूं जहां मुझे कॉम्बो बॉक्स का उपयोग करने की आवश्यकता है जिसके लिए मैंने ValueListBox का उदाहरण इस्तेमाल किया था। उस कॉम्बो में, मुझे एक वर्ष के महीनों का प्रतिनिधित्व करने वाले नंबरों को 1 से 12 तक सूचीबद्ध करने की आवश्यकता है। लेकिन कॉम्बो अंत में null मूल्य जोड़ता है। क्या कोई मेरी मदद कर सकता है कि null मूल्य को कैसे निकालें?ValueListBox मानों से शून्य मान को कैसे हटाएं

final ValueListBox<Integer> monthCombo = new ValueListBox<Integer>(new Renderer<Integer>() { 

      @Override 
      public String render(Integer object) { 
       return String.valueOf(object); 
      } 

      @Override 
      public void render(Integer object, Appendable appendable) throws IOException { 
       if (object != null) { 

        String value = render(object); 
        appendable.append(value); 
       } 
      } 
     }); 
    monthCombo.setAcceptableValues(getMonthList()); 
    monthCombo.setValue(1); 

    private List<Integer> getMonthList() { 
     List<Integer> list = new ArrayList<Integer>(); 

     for (int i = 1; i <= 12; i++) { 
      list.add(i); 
     } 

     return list; 
    } 

enter image description here

उत्तर

24

setAcceptableValues से पहले कॉल setValue

कारण यह है कि मूल्य null है जब आप setAcceptableValues फोन है, और ValueListBox स्वचालित रूप से स्वीकार्य मानों की सूची के लिए किसी भी मूल्य (आम तौर पर setValue के लिए पारित) कहते हैं (ताकि मूल्य वास्तव में सेट है, और चयनित किया जा सकता उपयोगकर्ता द्वारा, और फिर से चयनित अगर उसने एक और मूल्य चुना है और मूल पर वापस जाना चाहता है)। setValue को पहले एक मान के साथ कॉल करना जो स्वीकार्य मूल्यों की सूची में होगा, इस दुष्प्रभाव को अस्वीकार करता है।

देखें http://code.google.com/p/google-web-toolkit/issues/detail?id=5477

+1

मैं सिर्फ पिछले एक समान प्रश्न पर अपने जवाब में उद्धृत किया, lol :) –

+3

धन्यवाद थॉमस Broyer। इसने काम कर दिया। –

+3

मैंने कोशिश की और यह काम नहीं कर रहा है। मैं अभी भी शून्य देखता हूं ... यह वास्तव में एक बग की तरह लगता है, और एक सुविधा नहीं। मैं 2.5-आरसी 1 –

2

इस question से हवाला देते हुए:

setAcceptableValues ​​खबरदार स्वचालित रूप से कहते हैं वर्तमान मूल्य (getValue से लौट आए, और अशक्त करने के लिए डिफ़ॉल्ट) सूची (और setValue को जोड़ता है आवश्यक होने पर भी स्वीकार्य मूल्यों की सूची के लिए मूल्य)

तो जिस क्रम में आप निम्नलिखित के रूप में setValue और setAcceptableValues ​​फोन inversing कोशिश:

monthCombo.setValue(1); 
monthCombo.setAcceptableValues(getMonthList()); 
+0

काम नहीं करता है, बहुत बहुत धन्यवाद Adel Boutros। यह ठीक काम किया ... –

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