2011-09-21 3 views
6

मुझे अनिवार्य रूप से एक मेनू है जहां आप हेडर पर क्लिक नहीं कर सकते हैं, लेकिन जब आप मेनू आइटम पर होवर करते हैं तो आप ड्रॉप डाउन एलिमेंट्स से चुन सकते हैं। प्रत्येक तत्व जी हैं: उनके साथ जुड़े ui फ़ील्ड के साथ एंकर टैग। मैं क्या होने की उम्मीद करता हूं, यह है कि जब कोई उपयोगकर्ता ड्रॉप डाउन तत्वों पर क्लिक करता है, तो उस क्षेत्र के लिए मेरा यूई हैंडलर आग लग जाएगा। यहां तक ​​कि डिबगिंग और ब्रेक पॉइंट के साथ भी यह कभी हिट नहीं होता है।जीडब्ल्यूटी यूआईहैंडलर जी के लिए: एंकर फायरिंग नहीं कर रहा है

नीचे आपको कोड में चिंता का मुख्य क्षेत्र मिल जाएगा। मैं केवल यहां अपने जीडब्ल्यूटी आयात पोस्ट करूंगा, क्योंकि यह माना जा सकता है कि शून्य त्रुटियों के कारण बाकी सही हैं।

यहाँ

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
      xmlns:g='urn:import:com.google.gwt.user.client.ui' 
      xmlns:cpcw='urn:import:org.collegeboard.pa.gwt.client.widget'> 
    <cpcw:ExtendedHTMLPanel> 
     <ul> 
      <li ui:field="juniorHigh"><g:Anchor href="">Junior High</g:Anchor> 
      <ul> 
       <li><g:Anchor href="#" ui:field="juniorHighFall">Fall</g:Anchor></li> 
       <li><g:Anchor href="#" ui:field="juniorHighSpring">Spring</g:Anchor></li> 
       <li><g:Anchor href="#" ui:field="juniorHighSummer">Summer</g:Anchor></li> 
      </ul> 
     </li> 
    </ul> 
    </cpcw:ExtendedHTMLPanel> 
</ui:UiBinder> 

और फिर यहाँ पर जा रहा है की एक विचार प्राप्त करने के लिए एक XML टुकड़ा है मेरी जावा वर्ग से टुकड़े

आयात

import com.google.gwt.core.client.GWT; 
import com.google.gwt.dom.client.LIElement; 
import com.google.gwt.event.dom.client.ClickEvent; 
import com.google.gwt.uibinder.client.UiBinder; 
import com.google.gwt.uibinder.client.UiField; 
import com.google.gwt.uibinder.client.UiHandler; 
import com.google.gwt.user.client.ui.Anchor; 

Ui फील्ड्स

हैं
@UiField 
protected LIElement juniorHigh; 

@UiField 
protected Anchor juniorHighFall; 

@UiField 
protected Anchor juniorHighSpring; 

@UiField 
protected Anchor juniorHighSummer; 

Ui हैंडलर

@UiHandler({"juniorHighFall","juniorHighSpring","juniorHighSummer"}) 
public void handleMenuClick(ClickEvent event) 
{ 
    DisplayUtil.displayAlertMessage(event.toString()); 
} 

प्रारंभ

@Override 
public void initializeBinder() 
{ 
    initWidget(ourUiBinder.createAndBindUi(this)); 
} 

अब, UiHandler वास्तव में मारा जाता है कभी नहीं। मेरे पास जी है: एंकर टैग्स के साथ और बिना टैग, और उन्हें जी के रूप में भी कोशिश की है: हाइपरलिंक और जी: बिना सफलता के बटन। ऐसा लगता है जैसे उईहैंडलर भी वहां नहीं है।

किसी भी मदद की सराहना की जाएगी, और अगर आपको लगता है कि आपको समस्या निवारण के लिए कुछ और चाहिए, तो कृपया मुझे बताएं !!

धन्यवाद :-)

संपादित करें:

बस सुनिश्चित करें कि यह स्पष्ट हो गया था बनाने के लिए, टेम्पलेट ui.xml फ़ाइल है कि इस ui.xml फ़ाइल में एक div में इस रखने था। जब मैंने इसे सरलपैनेल के साथ बदल दिया, तो सब कुछ उइहैंडलर के साथ काम करता था।

प्रतिक्रियाओं के लिए धन्यवाद!

उत्तर

6

यह डिफ़ॉल्ट रूप से आपके पास काम करता है और काम करना चाहिए।

मैंने देखा है:

  • आपका कोड संदर्भ "ourUiBinder"
  • आपका नियंत्रण एक "ExtendedHTMLPanel" में लिपटे रहे हैं

इन कस्टम वर्गों की तरह लगता है - शायद कुछ अजीब हो रहा है उन कार्यान्वयन में?

शायद आप उन एंकरों को सरलपैनेल में लपेटने और डिफ़ॉल्ट यूआईबिंडर का उपयोग करने और यह देखने के लिए देख सकते हैं कि यह काम करता है या नहीं। यदि ऐसा होता है, संभावना है कि आप अपने द्वारा उपयोग किए जाने वाले किसी भी कस्टम नियंत्रण के साथ कुछ करना चाहते हैं। यदि ऐसा नहीं होता है तो कुछ अजीब चल रहा है - शायद आपके आईडीई आदि को पुनरारंभ करें।

+0

हाँ, वे कस्टम कक्षाएं हैं, और मैं उनके साथ खोदना शुरू कर दूंगा ताकि यह देखने के लिए कि उनके साथ कुछ मजेदार चल रहा है या नहीं। आश्वासन के लिए धन्यवाद कि कोड काम करना चाहिए, क्योंकि वह मुझे दीवार चला रहा था! मैं सरलपैनेल को यह देखने के लिए एक शॉट भी दूंगा कि क्या यह चाल है! जवाब के लिए धन्यवाद! –

+0

इसके अलावा, मैं इसे ऊपर उठाऊंगा, लेकिन मेरे पास अभी तक ऐसा करने के लिए पर्याप्त प्रतिष्ठा नहीं है ... (╯ ° □ °) ╯(┻━┻ –

+0

सरलपैनल ने चाल की! टेम्पलेट xml पर इस विस्तारित HTMLPanel में, तत्व divs थे। मैंने divs को SimplePanels में बदल दिया है और सभी UiHandlers ठीक से काम कर रहे हैं। मेरे पास अभी भी आपके उत्तर को ऊपर उठाने के लिए पर्याप्त प्रतिष्ठा नहीं है, लेकिन धन्यवाद! :) –

2

टेम्पलेट xml फ़ाइल में प्रत्येक दृश्य को div तत्व में निहित किया गया था।फिलिप-एफकेयू ने सिफारिश की है कि मैंने पोस्ट किए गए कोड के लिए सरलपैनल्स में देखें, जिसने मुझे टेम्पलेट फ़ाइल को देखने के साथ-साथ यह देखने के लिए भी देखा कि वे जीडब्ल्यूटी कंटेनर नहीं थे, वे divs थे। जैसे ही मैंने उन्हें सरलपैनल्स बनाया, मेरे यूआईंडलर एक आकर्षण की तरह काम करते थे!

धन्यवाद फिलिप-एफकेयू! जी: SimplePanel एफटीडब्ल्यू !!!

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

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