禁用类路径扫描的 Vaadin 14 应用程序中存在多个网格 header 行的问题
Problem with multiple grid header rows in a Vaadin 14 application with classpath scanning disabled
当我使用 appendHeaderRow()
或 prependHeaderRow()
向我的 Vaadin 14 应用程序中的网格添加一个或多个额外的 header 行时,网格仍然只显示一个 header 排。我几乎可以肯定我明白为什么会这样,但解决方案尚不清楚。
在我的项目中,我禁用了 class 路径扫描,并且我正在手动实例化和调用 Vaadin 使用的初始化器,如示例中的 this example. I have a class that implements ServletContextListener
and invokes the initializers, just like the VaadinInitializer
class 中所述.
为了让 header 行正确显示,我相信我必须将 ColumnGroup.class
传递给 DevModeInitializer
,因为它对应于 <vaadin-grid-column-group>
元素当我向 header 添加一个额外的行时,我在网格的 HTML 中看到了这一点。为了使它们正确显示,我不得不对许多其他 Vaadin classes 执行此操作,包括 Grid
和 GridSelectionColumn
。问题是,与其他 classes 不同,ColumnGroup
class 不是 public,因此我无法导入它并将其传递给初始化程序。
有没有人知道任何解决方法,或者是否无法让多个网格 header 行与我的项目配置一起正常工作?
无法引用非public classes 似乎是关于如何避免class路径扫描的整个想法中的一个遗漏。
我相信您可以通过创建一个具有与 ColumnGroup
相同的资源注释的虚拟组件 class 来解决此问题,然后将该 class 与初始化程序一起使用。这应该可以工作,因为 Vaadin 的这一部分只关心找到了哪些注释,但是在哪里找到并不重要。
当我使用 appendHeaderRow()
或 prependHeaderRow()
向我的 Vaadin 14 应用程序中的网格添加一个或多个额外的 header 行时,网格仍然只显示一个 header 排。我几乎可以肯定我明白为什么会这样,但解决方案尚不清楚。
在我的项目中,我禁用了 class 路径扫描,并且我正在手动实例化和调用 Vaadin 使用的初始化器,如示例中的 this example. I have a class that implements ServletContextListener
and invokes the initializers, just like the VaadinInitializer
class 中所述.
为了让 header 行正确显示,我相信我必须将 ColumnGroup.class
传递给 DevModeInitializer
,因为它对应于 <vaadin-grid-column-group>
元素当我向 header 添加一个额外的行时,我在网格的 HTML 中看到了这一点。为了使它们正确显示,我不得不对许多其他 Vaadin classes 执行此操作,包括 Grid
和 GridSelectionColumn
。问题是,与其他 classes 不同,ColumnGroup
class 不是 public,因此我无法导入它并将其传递给初始化程序。
有没有人知道任何解决方法,或者是否无法让多个网格 header 行与我的项目配置一起正常工作?
无法引用非public classes 似乎是关于如何避免class路径扫描的整个想法中的一个遗漏。
我相信您可以通过创建一个具有与 ColumnGroup
相同的资源注释的虚拟组件 class 来解决此问题,然后将该 class 与初始化程序一起使用。这应该可以工作,因为 Vaadin 的这一部分只关心找到了哪些注释,但是在哪里找到并不重要。