2011-01-23 3 views
6

में दिखाएं/छुपाएं मेरे पास <table> के साथ एक HTMLPanel है। मैं जावा कोड से <tr> दिखाना/छिपाना चाहता हूं।जीडब्ल्यूटी - एक HTMLPanel

मैंने अन्य HTMLPanel के अंदर <tr> डालने और पैनल को छिपाने की कोशिश की। कुछ इस तरह:

... 
<tr> 
    ... 
</tr> 
<g:HTMLPanel ui:field="name"> 
    <tr> 
    ... 
    </tr> 
</g:HTMLPanel> 
<tr> 
    ... 
</tr> 

कोड:

name.setVisible(false); 

और यह काम करता है, लेकिन यह प्रस्तुति में एक अजीब व्यवहार का कारण बनता है।

मैं यह कैसे कर सकता हूं ???

Thx बहुत !!!

उत्तर

9

का उपयोग HTML के साथ ...<tr ui:field="rowName">...</tr>... पर करें। फिर उस पंक्ति को दिखाने/छिपाने के लिए TreeRowElement का उपयोग करें।

+1

हाय, मुझे लगता है कि आप टेबलरोवमेंट का मतलब है, इस मामले में, मैं तत्व को कैसे दिखा/छुपाता हूं? इसमें सेट विज़िबल विधि नहीं है ... thx बहुत – david

+2

'rowName.getStyle()। setDisplay (Display.NONE) आज़माएं; ' –

+0

हाय टैसॉस, आप सही हैं !, मैं कसम खाता हूं कि मैं getStyle विधि की तलाश में हूं। ... वैसे भी thx बहुत !!!! – david

5

@Tassos जवाब पर विस्तार करना:

जावा

@UiField TableRowElement expanded; 

boolean exp=false; 

    expandme.addClickHandler(new ClickHandler() { 
     public void onClick(ClickEvent clickevent) { 
      if(exp){ 
       expanded.getStyle().setDisplay(Display.NONE); 
      } else { 
       expanded.getStyle().clearDisplay(); //took a little while to find. 
      } 
      exp = !exp; 
     } 
    }); 

HTML:

<tr ui:field="expanded"> 

कहाँ expandme किसी भी तत्व है कि आप, (पूर्व एंकर, बटन के लिए क्लिक करें हैंडलर संलग्न कर सकते हैं है , आदि)

+0

clearDisplay() उपयोगी था, अन्यथा तालिका पंक्ति को छुपा/शो के बाद अपनी आरंभिक चौड़ाई याद नहीं थी (बस इसे ब्लॉक या इनलाइन पर सेट करना फिर से काम नहीं करता था)। धन्यवाद! – joscarsson

+0

@sjakubowski 'clearDisplay() 'के लिए धन्यवाद! – eugene82