TypeAhead工作正常如果您没有这么多文档。如果我删除了很多类型的打印工作。我认为在typeahead选项中存在@DbColumn()的限制。
如何解决这个问题?它就像一个64k大小的问题,但任何建议都很重要
提前致谢 C.A。
答案 0 :(得分:3)
您是否正在使用@DBColumn()或@DBLookup()来填充您的预先输入?他们确实有64K的限制。 (我不确定,因为我读了你的问题,所以我要求澄清)。
如果是这样,您可能需要考虑查看此Can typeahead results be returned from a java function,
等链接我最近做了大量文件(数百万)。我使用了这个,但是因为它需要花费很多时间才能返回,所以我将其更改为获取视图中的第一个选定条目(基于AJAX类型的值),从该条目创建ViewNavigator,并使用setBufferMaxEntires用于限制返回的ViewNavigator大小的属性。这使得这个过程非常快。
布赖恩
更新:
根据要求。我开始使用上面链接的结果,然后添加了
ViewEntry startEntry = canQLView.getEntryByKey(searchValue, false);
allObjects.addElement(startEntry);
if (startEntry != null) {
ViewNavigator matchingEntries = canQLView.createViewNavFrom(startEntry);
matchingEntries.setBufferMaxEntries(10);
ViewEntry entry = matchingEntries.getFirst();
您可以看到我获得单个条目而不是ViewEntryCollection,从该条目启动我的ViewNavigator,并且setBufferMaxEntries属性限制获取的数量 - 您可以更改它,但是低数字是合理的,因为它是一个预先输入。< / p>
干杯, 布赖恩
答案 1 :(得分:0)
正确,@ DbColumn()有64Kb的限制,它不是特定于XPage的限制,各种博客文章都证实了这一点。确保只有在用户输入了可以限制的适当数量的字符后才提供预先输入。毕竟,typeahead应该返回少量条目供用户选择,否则它没什么用处。然后将@DbLookup与“[PARTIALMATCH]”或getAllEntriesbyKey一起使用。有许多博客文章可以提供代码示例。