Vaadin Blog 문서를 기반으로 지연 격자로드를 구현했으며 특정 격자 열에 필터를 추가하려고합니다. 이 경우 lambda 함수를 CallbackDataProvider로 설정하여 지연로드를 수행합니다. 아래 코드를 참조하십시오.Vaadin Grid - 지연로드가있는 다중 필터
CallbackDataProvider와 필터링을 어떻게 조합 할 수 있습니까? 이 StackOverflow post에 따르면 작성자는 CallbackDataProvider에 대한 래퍼로 ConfigurableFilterDataProvider를 사용하여이 문제를 해결할 수 있습니다. 슬프게도, 그는 더 많은 코드를 공유하지 않았습니다. 달성 방법에 대한 힌트를 제공해 주시겠습니까? 다음과 같이
우리의 코드는 완전히 블로그 기사에 기반하고 있습니다 :
public class Person {
private Long id;
private String firstName;
private String lastName;
private String email;
... getter and setters ...
}
public class PersonService {
public List<Person> findAll(int offset, int limit) { ... }
public int count() { ... }
}
는 DataProvider를 설정 : 예에서
grid.setDataProvider(
(sortOrders, offset, limit) -> {
Map<String, Boolean> sortOrder = sortOrders.stream().collect(
Collectors.toMap(
sort -> sort.getSorted(),
sort -> SortDirection.ASCENDING.equals(sort.getDirection())
)
);
return service.findAll(offset, limit, sortOrder).stream();
},
() -> service.count()
);
감사합니다. https://vaadin.com/docs/v8/framework/datamodel/datamodel-providers.html#lazy-filtering과 함께 귀하의 게시물에 대한 문제를 해결했습니다. – Fabian
내 코드가 일반 시스템에서 왔고 DAO로 단순화하고 싶지 않았기 때문에 누군가가 더 유용 할 것입니다. :) – avix