2012-11-21 5 views
7

विफल रहता है मैं वर्तमान में Ikarus widgetset ऐड-ऑन से स्लाइडिंग पैनेल से निपट रहा हूं। मैं इस पैनल को removeComponent() का उपयोग करके दृश्य से हटाने की कोशिश कर रहा हूं जब मुझे सर्वर-साइड पर कुछ "विशेष" ईवेंट प्राप्त होता है (उदाहरण के लिए उपयोगकर्ता ने बटन या विंडो को फिर से आकार दिया था)। लेकिन घटक अभी भी दृश्य पर दिखाई दे रहा है। मैं डेटा यूआई डिबग करने के लिए कोशिश कर रहा था प्राप्त करता है:लेआउट से घटक को हटाने में

घटना से पहले:

-Response: 
-change format=uidl pid=PID0 
-com.vaadin.terminal.gwt.client.ui.VWindow id=PID0 height=590px width=815px immediate=true caption=ASM 5.0.7 name=1 theme=acs-reindeer resizable=true main=true  layoutRelativeHeight=true layoutRelativeWidth=true 
     +variables 
     -com.vaadin.terminal.gwt.client.ui.VVerticalLayout id=PID127 height=100.0% width=100.0% margins=0 alignments={} expandRatios={PID133:1,} 
     +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout 
     +com.vaadin.terminal.gwt.client.ui.VPanel 
     +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout 
     +com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility 
     +com.velociti.ikarus.widget.client.ui.VIkarusSlidingPanel 

घटना के बाद:

-Response: 
    -change format=uidl pid=PID0 
    -com.vaadin.terminal.gwt.client.ui.VWindow id=PID0 height=995px width=1853px immediate=true caption=ASM 5.0.7 name=1 theme=acs-reindeer resizable=true main=true layoutRelativeHeight=true layoutRelativeWidth=true 
     +variables 
      -com.vaadin.terminal.gwt.client.ui.VVerticalLayout id=PID127 height=100.0% width=100.0% margins=0 alignments={} expandRatios={PID133:1,} 
      +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout 
      +com.vaadin.terminal.gwt.client.ui.VPanel 
      +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout 
      +com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility 

क्या मैं स्पष्ट रूप से प्रतिक्रिया से देख - खिड़की अब VIkarusSlidingPanel शामिल नहीं है - लेकिन वास्तव में यह अभी भी वहां है क्योंकि इसे डीओएम से हटाया नहीं गया था।

  • एकमात्र चीज जो मुझे मदद करती है - पृष्ठ को पुनः लोड करें।
  • उसी ईवेंट पर विंडो से बटन निकालना - सही काम करता है।
  • setVisible(false) काम नहीं करता है। इसके बाद पुनः लोड करने का प्रयास करते समय मुझे एक खाली पृष्ठ प्राप्त होता है। (javacript अपवाद फेंक दिया गया है)

समस्या क्या है? क्या कोई मुझे कामकाज के साथ मदद कर सकता है?

+0

यदि आप एक ही स्थान पर किसी अन्य घटक का उपयोग करते हैं, तो क्या कार्य हटाया जाएगा? – miq

+0

हां, ज़ाहिर है। मैंने पोस्ट में लिखा है: "एक ही घटना पर विंडो से बटन निकालना - सही काम करता है।" - इसके बजाय बटन कोई घटक हो सकता है और यह काम करेगा। – Viktor

उत्तर

0

जांचें कि आपके घटक के पास तत्काल स्थिति है या नहीं। वाडिन में यह केवल घटक पर सेटआईमीडिएट (सत्य) द्वारा सेट किया गया है। और मुझे लगता है कि घटक को हटाने का सबसे अच्छा तरीका बस इसे दृश्यमान (झूठा) द्वारा छुपाएं।

वैसे भी, आशा है कि आपको एक समाधान मिलेगा।

+0

ध्यान दें कि वाडिन में घटकों को छिपाना बहुत शक्तिशाली दृष्टिकोण है क्योंकि जब घटक छिपा हुआ होता है, तो इसका राज्य सर्वर पक्ष पर संरक्षित होता है और क्लाइंट में छिपे हुए घटक के बारे में कोई डेटा नहीं होता है - इसलिए ऐसा नहीं है कि घटक सीएसएस या जावास्क्रिप्ट से छिपा हुआ है। इसलिए एक घटक को छिपाना सुरक्षित है और क्लाइंट को इसके बारे में कोई जानकारी नहीं मिलेगी। –

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