2015-07-05 8 views
7

पर क्लिक किए जाने के बाद एक ईवेंट असाइन करें जब मैं ग्रिड इनलाइन संपादित कर रहा हूं तो मैं अपनी ग्रिड पंक्ति में परिवर्तनों को सहेज या रद्द कर सकता हूं। बटन 'सेव' को धक्का देने के बाद मैं अपनी डेटाबेस प्रविष्टियों को अपडेट करना चाहता हूं (डेटा बेस मैकेनिज्म पहले से ही हो चुका है) मैं इसे कैसे कार्यान्वित कर सकता हूं?सहेजने वाले बटन को कैसे सुनें या वाडिन 7

मेरे कंटेनर: BeanItemContainer<CategoryOfService> beansContainer;

संपादन दृश्य: enter image description here

सभी मैं क्या इसकी जरूरत पता है जो श्रोताओं मैं उपयोग करना होगा। मुझे कुछ CommitHandler मिला जो मैं EditorFieldGroup क्लास द्वारा जोड़ सकता हूं लेकिन मैं इसे ठीक से कार्यान्वित नहीं कर सकता हूं शायद समस्या को हल करने का एक और तरीका होना चाहिए।

+1

वाडिन में आपके पास आमतौर पर एक कंटेनर होता है जो डेटाबेस को अद्यतनों को संभालता है। तो आपको BeanItemContainer –

उत्तर

12

इनलाइन Save कैप्चर करने का एक तरीका है ग्रिड पर क्लिक करें।

grid.getEditorFieldGroup().addCommitHandler(new FieldGroup.CommitHandler() { 
     @Override 
     public void preCommit(FieldGroup.CommitEvent commitEvent) throws  FieldGroup.CommitException { 
     //... 
     } 

     @Override 
     public void postCommit(FieldGroup.CommitEvent commitEvent) throws  FieldGroup.CommitException { 
     //... 
     } 
}); 

Save क्लिक करने के बाद दोनों तरीकों preCommit और postCommit कहा जाता है मिलता है।

उम्मीद है कि यह मदद करता है :)

+0

धन्यवाद साथी की घटनाओं को देखना होगा। मैंने देखा कि मेरे मामले में, जब भी मैं grid.removeAllItems() तो grid.setValues ​​() को कॉल करता हूं, तो मुझे कॉमिटहैंडलर जोड़ने की आवश्यकता होती है। –

1

ग्रिड वर्तमान में श्रोताओं को इनलाइन संपादक के लिए सहेजने और रद्द करने के लिए जोड़ने का कोई प्रत्यक्ष तरीका नहीं देता है, हालांकि यह वैदिन 7.6 में कुछ ऐसा हो सकता है।

ऐसा होने से पहले एक कामकाज के रूप में, CommitHandler दृष्टिकोण जिसे आपने पहले ही उल्लेख किया है, अभी भी काम करना है। आप एक मूल उदाहरण here पा सकते हैं। आपके BeanItemContainer की सामग्री पोस्ट कमेंट चरण में पूरी तरह से अपडेट की जानी चाहिए।

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