diff options
-rw-r--r-- | server/src/com/vaadin/ui/Grid.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/Grid.java b/server/src/com/vaadin/ui/Grid.java index e1c7e894a3..cad02a6ea6 100644 --- a/server/src/com/vaadin/ui/Grid.java +++ b/server/src/com/vaadin/ui/Grid.java @@ -4859,6 +4859,11 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, removeExtension(datasourceExtension); } + // Remove old DetailComponentManager + if (detailComponentManager != null) { + detailComponentManager.remove(); + } + resetEditor(); datasource = container; @@ -4893,6 +4898,11 @@ public class Grid extends AbstractFocusable implements SelectionNotifier, datasourceExtension = new RpcDataProviderExtension(container); datasourceExtension.extend(this); datasourceExtension.addDataGenerator(new RowDataGenerator()); + for (Extension e : getExtensions()) { + if (e instanceof DataGenerator) { + datasourceExtension.addDataGenerator((DataGenerator) e); + } + } detailComponentManager = new DetailComponentManager(this); |