GWT DataGrid / CellTable:选择多个页面

时间:2012-12-04 12:57:44

标签: gwt datagrid pager celltable selectionmodel

我正在使用带有DataGridSimplePager的GWT 2.4以及MultiSelectionModel。我想在所有页面上实现一个简单的 select-all 特征。

我只能选择当前页面上的所有可见项目。选择所有页面上所有项目的最佳方法是什么?

我知道MultiSelectionModelProvidesKey对象提供的代理密钥存储在HashMap中。我想我必须从服务器或至少所有请求所有代理对象。但实际上我不想在服务器端存储有关ProvidesKey的{​​{1}} - 方法的信息。但我也无法访问所选代理密钥的getKey() MultiSelectionModel。这一切看起来都很麻烦,那么有更好的解决方法吗?

3 个答案:

答案 0 :(得分:0)

为什么需要所有键才能全部选择?当您从列表中选择某些对象时,您需要记住选择了哪些对象,但是当您选择所有对象时,您需要一个布尔值:

// on click Select All button/checkbox
boolean selectAll = true;
// ask a user what he wants to do
// send a request to server with a parameter selectAll to update/delete all objects

答案 1 :(得分:0)

https://developers.google.com/web-toolkit/doc/latest/DevGuideUiCellWidgets#selection中所述,实现此目的的一种方法是实现自己的SelectionModel(例如,通过扩展AbstractSelectionModel或DefaultSelectionModel):

  

复杂的实现可以使用布尔值处理多个页面中的“全选”以指示所有内容都已选中,然后跟踪否定选择。

答案 2 :(得分:0)

只有在延迟加载时,才能在多个页面中选择所有内容。首先,为什么需要选择全部?如果要对所有网格数据执行某些操作,则您已经拥有该列表,并且可以直接在列表上执行操作。尽管如此,您可以通过迭代列表并在每个项目上使用以下API来选择多个页面上的网格的所有行。

 public void setSelected(T item, boolean selected);

注意: 仅当您延迟加载时才会有效。