2

Vaadin 8 では、次のグリッド定義が与えられます。

    grid = new Grid<>();
    grid.getEditor().setEnabled(true);
    carBinder = grid.getEditor().getBinder();

と:

    grid.getEditor().addSaveListener(event -> {
    try {
        Binder<Car> binder = event.getSource().getBinder();
        grid.getDataProvider().refreshAll();
    } catch(Exception e) 
        ExceptionNotification.show(e);
    }
    });

私が抱えている問題は、現在、ローカルまたはクラススコープで定義されたevent.getSource()またはバインダーを介して、グリッドエディターから変更された値にアクセスできないことです。

デバッガーで、Vaadin クラスcom.vaadin.ui.components.grid.EditorImplに値を含む編集済みのプロパティが表示されますが、プライベートであるためアクセスできません。

デバッグでは、binder.bean の値が NULL です。これは、binder.getBean() によって取得される値になります。

そのため、さまざまな方法を試しましたが、現在、保存リスナーで編集された値を取得して操作し、問題を解決するためのヘルプやインスピレーションを検索することができませんでした。

4

2 に答える 2

1

私は同じ問題に遭遇しました。調べたところ、リリース間近の Vaadin 8.0.3 で修正されるとのことでした。

https://github.com/vaadin/framework/issues/8658

于 2017-03-17T06:42:03.563 に答える