2015-07-05 22 views
7

tıklatıldıktan sonra bir etkinlik atayın Izgarayı satır içi düzenlediğimde, ızgara satırı değişiklikleri kaydedebilir veya iptal edebilirim. 'Kayıt' düğmesine basıldıktan sonra veritabanı girişlerimi güncellemek istiyorum (Veri tabanı mekanizması zaten yapıldı) Bunu nasıl uygulayabilirim?Kaydetme düğmesi nasıl kaydedilir veya Vaadin 7

Benim konteyner: BeanItemContainer<CategoryOfService> beansContainer;

Düzenleme görünümü: enter image description here

Tüm ben ihtiyaç ne kullanmak zorunda olan dinleyici biliyorum. EditorFieldGroup sınıfı tarafından ekleyebileceğim bazı CommitHandler buldum ama düzgün bir şekilde uygulayamıyorum belki de sorunu çözmek için başka bir yol olmalı.

+1

Vaadin'de, güncelleştirmeleri veritabanına işleyen bir kapsayıcınız vardır. Bu nedenle, BeanItemContainer –

cevap

12

Satır içi Save satırını yakalamak için bir yol vardır.

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 tıkladıktan sonra iki yöntem preCommit ve postCommit denilen olsun.

Yardım etmek ister misiniz?

+0

mate etkinliklerine bakmanız gerekecek. Benim durumumda, grid.removeAllItems() sonra grid.setValues ​​() çağırdığımda ,CommitHandler eklemem gerektiğini fark ettim. –

1

Şu anda, Vaadin 7.6'da değişebilecek bir şey olsa da Grid şu anda satır içi düzenleyicinin kaydetme ve iptal etme düğmelerine dinleyicileri eklemenin doğrudan bir yolunu sunmuyor.

Bundan önce bir geçici çözüm olarak, daha önce bahsettiğiniz CommitHandler yaklaşımının hala çalışması gerekiyor. Temel bir örnek here bulabilirsiniz. BeanItemContainer'ınızın içeriği, postCommit aşamasında tamamen güncellenmelidir.