GWT CellTable 选择并单击 CheckBoxCell

Posted

技术标签:

【中文标题】GWT CellTable 选择并单击 CheckBoxCell【英文标题】:GWT CellTable selection and single click on CheckBoxCell 【发布时间】:2012-06-16 12:07:36 【问题描述】:

我有一个 CellTable,它可以与 SingleSelectionModel 一起使用,以进行单选并将一些信息显示到详细信息面板中。我还在这个 CellTable 中添加了 CheckBoxCell 列,它与另一个 MultipleSelectionModel 一起进行批量删除操作。

当我尝试单击 CheckBoxCell 列中的复选框时,GWT 选择行,然后在第二次单击复选框后,它会更改复选框状态。所以我们应该点击两次,但我需要一键完成(更改复选框状态)。

我尝试了不同的方法来修复它:

将dependsOnSelection和handlesSelection参数更改为CheckboxCell 在 CellTable 中更改 SelectionEventManager(DefaultSelectionEventManager.createCheckboxManager()、DefaultSelectionEventManager.createCustomManager)

但它不起作用。

我在 Internet 中发现了类似的问题,但它们都适用于一个 MultipleSelectionModel。这和我想要的不一样,因为有详细信息面板(所以我只能做一个选择)。

谁能帮我弄清楚如何解决它?

统一更新: 我刚刚删除了 SingleSelectionModel 并重新设计了 UI 以使用 MultipleSelectionModel。这是GWT-hell..

【问题讨论】:

【参考方案1】:

尝试切换您的选择模型:使用MultiSelectionModel 作为CellTable 的选择模型,以便复选框按预期工作(dependsOnSelectionhandlesSelection 都设置为true),并且对于主细节功能,使用CellPreviewEvent.Handler(或DefaultSelectionEventManager#createCustomManager)和RowStylesgetRowElement+addStyleName/removeStyleName进行渲染(RowStylesCellTable渲染行时,然后getRowElement 动态更新样式)。

【讨论】:

实际上我已经尝试过这种方式,但它没有给我所需的行为。不过谢谢你的回答,我会在星期一再试一次。 谢谢,这对我使用 CellPreviewEvent 并测试事件类型非常有效:if (event.getColumn() == 1 && event.getNativeEvent().getType().equals("click"))

以上是关于GWT CellTable 选择并单击 CheckBoxCell的主要内容,如果未能解决你的问题,请参考以下文章

GWT CellTable,单击时禁用 ButtonCell

GWT CellTable 以编程方式选择 CheckBoxCell

GWT DataGrid/CellTable:选择多个页面

带有标签和图像的 GWT Celltable 列

GWT/文本框-单击和双击处理程序选项?可能的?

GWT 2.5.1 CellTable 和 SimplePager 问题