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
的选择模型,以便复选框按预期工作(dependsOnSelection
和handlesSelection
都设置为true
),并且对于主细节功能,使用CellPreviewEvent.Handler
(或DefaultSelectionEventManager#createCustomManager
)和RowStyles
和getRowElement
+addStyleName
/removeStyleName
进行渲染(RowStyles
当CellTable
渲染行时,然后getRowElement
动态更新样式)。
【讨论】:
实际上我已经尝试过这种方式,但它没有给我所需的行为。不过谢谢你的回答,我会在星期一再试一次。 谢谢,这对我使用 CellPreviewEvent 并测试事件类型非常有效:if (event.getColumn() == 1 && event.getNativeEvent().getType().equals("click"))
以上是关于GWT CellTable 选择并单击 CheckBoxCell的主要内容,如果未能解决你的问题,请参考以下文章
GWT CellTable,单击时禁用 ButtonCell