在Vaadin表中是否有任何特定的方法来实现分页/延迟加载。 我试图找到一些文档,但我不能。
答案 0 :(得分:4)
使用Viritin add-on及其MTable组件。我是最有效的(服务器资源副)方式,并且拥有最简单的API(根本不需要使用Container API!)。只需实现两个简单的接口即可。这是一个lambdas和一个基本DAO的例子。
@Inject
GPSRouteService s;
@Override
public Component getTable() {
return new MTable<Update>(s::fetchUpdates, s::getEntityCount)
.withFullWidth();
}
上面的代码示例来自this example app,它显示了Vaadin中的各种延迟加载方法。如果您是Spring用户,请查看连接到Spring Data JPA存储库的this example,并使用可选的排序支持。
我是Viritin的维护者,但我也维护了Vaadin和各种附加组件7年,现在我正在为Vaadin做技术营销。
答案 1 :(得分:1)
延迟加载是完全重新设计的,并且在Vaadin 8中开箱即用。这里有一个例子from the official docs:
DataProvider<Person, Void> dataProvider = new BackendDataProvider<>(
// First callback fetches items based on a query
query -> {
// The index of the first item to load
int offset = query.getOffset();
// The number of items to load
int limit = query.getLimit();
List<Person> persons = getPersonService().fetchPersons(offset, limit);
return persons.stream();
},
// Second callback fetches the number of items for a query
query -> getPersonService().getPersonCount()
);
Grid<Person> grid = new Grid<>();
grid.setDataProvider(dataProvider);