【问题标题】:I want my CheckboxCell to control the selected state of each row我希望我的 CheckboxCell 控制每一行的选定状态
【发布时间】:2011-04-12 11:12:31
【问题描述】:

我有一个CellTable,其中有一列用CheckboxCell 呈现。我想选中复选框以选择行。

CheckboxCell(false, false) 的默认行为非常接近我的目标 - 选择一行选中复选框,取消选中一行取消选中复选框。但是,如果我单击 复选框,它会取消选择任何已选择的行。更糟糕的是,当我取消选中一个复选框时,该行没有被取消选中。啊!

我现在正在考虑编写自己的单元格(或弄乱 SelectionModel?),但这似乎是 Google 可能一直在尝试的行为。我已经尝试了构造函数中值的所有排列,但无济于事。有没有我可以添加的简单覆盖来最终让我的梦想......成为现实?

【问题讨论】:

    标签: gwt gwt-2.2-celltable


    【解决方案1】:

    您知道如何搜索 30 分钟,然后在发布问题 20 秒后找到答案吗?

    好吧,事实证明,要释放 CheckboxCell 的力量,您需要传递一个 Handler 来处理复杂的情况。试试

    setSelectionModel(selectionModel, DefaultSelectionEventManager.<T> createCheckboxManager()); 
    

    用你的MultiSelectionModel selectionModel - selectionModel 本身是不够的!

    【讨论】:

    • 您的 CheckboxCell 是否设置为 false、false 或 true、true?我在标题数据网格上实现了一个全选复选框,它只是选择/取消选择所有复选框 voa 一个 jquery 触发函数。但是,当我设置为 true、false 以及 MultiSelectionModel 的任何排列时,选中和未选中的复选框的行为并不一致。
    • 我使用了 false,false - 这对我来说非常违反直觉。
    • with (false, false) 我的“全选”复选框不会选中/取消选中最后一行,或者有时是随机行。 (true, true) 解决了这个问题;但是在选中/取消选中复选框后,它不会保留行突出显示。
    • 可能是时候提交一个带有 GWT 的错误了。 FWIW:我通过selectionModel.setSelected 方法实现select all,而不是通过“手动”单击复选框。使用 (false, false),这就像一个魅力。祝你好运!
    • 你是对的。我删除了 jquery 解决方案并添加了一个带有 CheckboxCell 的自定义 Header,它使用 selectionModel 执行“全选”功能。它仅适用于 (true,false) 设置。但是,我现在发现的另一个问题是,当调用 selectionModel.getSelectedSet() 时,行选择(不是单击复选框)不会返回选定的值。只有当我得到一个值时才会单击一个复选框(或多个复选框)。您知道是否有办法在复选框选择之外捕获行选择?
    猜你喜欢
    • 2020-01-19
    • 2023-02-24
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    相关资源
    最近更新 更多