2011-11-04 13 views
6

मेरे पास सिंगल चयन चयन से जुड़े एक GWT 2.4 डेटाग्रिड हैं। ग्रिड में कॉलम में से एक चेकबॉक्ससेल है, लेकिन इसका उपयोग चयन के लिए नहीं किया जाता है, लेकिन पंक्ति के अंतर्निहित आइटम प्रकार के लिए बुलियन फ़ील्ड मान सेट करने के लिए। मेरी समस्या यह है कि जब मैं चेकबॉक्स पर क्लिक करता हूं, तो पंक्ति पहले चुनी जाती है, तो मुझे चेकबॉक्स को सेट/अनसेट करने के लिए दूसरी बार क्लिक करना होगा। मैं, पसंद करेंगे कि चेकबॉक्स का बाहर पर क्लिक पंक्ति चयन करता है, जबकि चेकबॉक्स को केवल सेट की अंदर पर क्लिक/चेकबॉक्स unsets। क्या कोई मुझे सही दिशा में इंगित कर सकता है कि यह कैसे करें। मैं ब्रॉउज़रएवेंट पर वापस आ रहा हूं, लेकिन मुझे यकीन नहीं है कि क्या प्रयास करना है।चेकबॉक्स सेल और चयन करने योग्य सेल तालिका पंक्तियां

उत्तर

6

आप जो कुछ भी करना चाहते हैं उसके आधार पर आप कुछ दृष्टिकोण कर सकते हैं। यहाँ दो विचारों जो मन में आ रहे हैं:

  • स्तंभ CellPreviewEvent.Handler के साथ सेल के आधार द्वारा एक सेल पर
  • अवरोधन यह ब्लैकलिस्ट और EventTarget की जाँच करके डोम स्तर पर इसे संभाल करने के लिए एक DefaultSelectionEventManager.CheckboxEventTranslator का उपयोग करें ("click".equals(event.getType())) और उसके बाद event.stopPropogation() का उपयोग करें जब EventTarget इनपुट प्रकार "चेकबॉक्स"
+0

मैं काम पर वापस आने पर सोमवार को इसे आजमाउंगा। धन्यवाद। –

+1

प्रलेखन पढ़ना, ऐसा लगता है कि SelectionEventManager में ऐसे सभी टूल्स हैं जिन्हें मुझे संभालने के लिए आवश्यक है और मेरे पास अन्य समस्याएं हैं। चीयर्स! –

0

यह कोड मेरे मामले में हल हो गया है जो आपके लिए बहुत ही समस्या है।

Column<SomeBean, Boolean> checkboxColumn= new Column<SomeBean, Boolean>(new CheckboxCell(true,false)) 
{ 
    @Override 
    public Boolean getValue(SomeBean object) 
    { 
     if(object == null || object.getId() == null) 
      return null; 
     return selectionModel.isSelected(object); 
    } 
}; 
संबंधित मुद्दे