作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Google Web Toolkit 创建了一个 CellTable。我刚开始使用它,我对它的了解非常少......然而,我一直在寻找有关如何在 CellTable header 中创建复选框的教程或代码示例,但我发现我不明白或没有奏效。
到目前为止,我已经得到这段代码来为复选框创建一个列和一个普通表格,这与 CellTable 的 Google 教程基本相同:
Column<Contact, Boolean> checkColumn = new Column<Contact, Boolean>(
new CheckboxCell(true, false)) {
@Override
public Boolean getValue(Contact contact) {
return null;
}
};
table.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
table.setColumnWidth(checkColumn, 40, Unit.PX);
现在我正在搜索代码以将复选框添加到标题以及如何使其选中或取消选中所有复选框。
感谢您的宝贵时间。
最佳答案
来自 my blog帖子:
这是一个简单的列标题,用于选择/取消选择表格中的所有行。选中所有行后,标题会自动选中。单击标题中的复选框会导致选择或取消选择所有行。
我正在使用选择模型和数据列表提供程序来执行选择魔术。它可能并不适合所有人。
这是我的自定义 header :
public final class CheckboxHeader extends Header {
private final MultiSelectionModel selectionModel;
private final ListDataProvider provider;
public CheckboxHeader(MultiSelectionModel selectionModel,
ListDataProvider provider) {
super(new CheckboxCell());
this.selectionModel = selectionModel;
this.provider = provider;
}
@Override
public Boolean getValue() {
boolean allItemsSelected = selectionModel.getSelectedSet().size() == provider
.getList().size();
return allItemsSelected;
}
@Override
public void onBrowserEvent(Context context, Element elem, NativeEvent event) {
InputElement input = elem.getFirstChild().cast();
Boolean isChecked = input.isChecked();
for (TYPE element : provider.getList()) {
selectionModel.setSelected(element, isChecked);
}
}
}
关于GWT Header 复选框选中/取消选中我表中的所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11519466/
我是一名优秀的程序员,十分优秀!