问题描述
是否可以延迟加载初始组合框内容,例如当您第一次打开组合框而不是设置 DataProvider 时获取项目?
例如,使用 CallbackDataProvider,您会在组件显示在 Web 浏览器中后立即获得第一个回调。
我们使用组合框来选择内容管理系统中的页面版本。由于版本列表非常占用 cpu,我们只希望在用户实际使用组合框时触发它。
这是我的 CallbackProvider。回调似乎与打开组合框无关,只与分页有关。
CallbackDataProvider callbackProvider = new CallbackDataProvider<>(
query->
{
/* Get the first 10 versions of this page */
if (location != null) {
try {
Node page;
page = MgnlContext.getJCRSession(RepositoryConstants.WEBSITE)
.getNode(location.getNodePath());
List versions = pageHistory.getAvailabLeversionInfoList(page)
.stream().limit(10).collect(Collectors.toList());;
return versions.stream();
} catch (RepositoryException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
}
return null;
},query->
{
/* Version count */
if (location != null) {
Node page;
try {
page = MgnlContext.getJCRSession(RepositoryConstants.WEBSITE)
.getNode(location.getNodePath());
List versions = pageHistory.getAvailabLeversionInfoList(page)
.stream().limit(10).collect(Collectors.toList());;
return versions.size();
} catch (RepositoryException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
}
return 0;
}
);
这是在 vaadin 8 中。任何帮助将不胜感激。 亲切的问候, 托马斯
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)