我尝试为输入字段启用typeahead以便从names.nsf查找用户名。我的names.nsf包含超过1000个人的文档。
从Web浏览器使用我的应用程序时,typeahead可以很好地工作(能够从names.nsf查找任何用户名)。
但是,从Notes客户端(即XPiNC)使用我的应用程序时,预输入仅尝试从names.nsf中的前50个人文档中查找,因此其余的用户名将永远不会从预输入结果中显示。我该如何解决这个问题?
<xp:typeAhead mode="partial" minChars="1" ignoreCase="true" id="typeAhead1">
<xp:this.valueList>
<![CDATA[#{javascript:return @Name("[Abbreviate]",@DbLookup(new Array(@DbName()[0],"names.nsf"),"($VIMPeople)",getComponent("Username").getSubmittedValue(),1,"[PARTIALMATCH]"));}]]>
</xp:this.valueList>
</xp:typeAhead>
凯文
将您的minChars设置为3。这将减少每次单个用户在字段中键入字符时请求更新的巨大性能损失。
我还建议使用@DbColumn代替@DbLookup。
最后,排除代码是问题还是提前输入。尽管提前输入的目的不是给您所有结果,而是根据用户键入的内容来缩小范围。
如果必须获得所有结果,建议您改用“名称选择器”组件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句