如何在 Vaadin 7 中点击保存按钮或分配事件

How to listen on save button or assign an event after it was clicked in Vaadin 7

当我在内联编辑网格时,我可以保存或取消我的网格行更改。我想在按下按钮 'save' 后更新我的数据库条目(数据库机制已经完成)我该如何实现?

我的容器: BeanItemContainer<CategoryOfService> beansContainer;

编辑视图:

我需要的一切都知道我必须使用哪些侦听器。我找到了一些 CommitHandler,我可以通过 EditorFieldGroup class 添加它,但我无法正确实现它,也许必须有另一种方法来解决问题。

Grid 目前没有为您提供任何直接的方法来为内联编辑器的保存和取消按钮添加监听器,尽管这在 Vaadin 7.6 中可能会发生变化。

作为在此之前的解决方法,您已经提到的 CommitHandler 方法应该仍然有效。您可以找到一个基本示例 here。 BeanItemContainer 的内容应该在 postCommit 阶段完全更新。

有一种方法可以捕获内联 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 两种方法都会被调用。

希望对您有所帮助:)

grid.getEditor().addSaveListener((EditorSaveListener<Product>) event -> {
        //your stuf
        HibernateDataSource.updateProduct(event.getBean());
    });