我正在使用来自RunningCoder的JQuery类型。如果我的源中有很少的记录,则Typeahead可以正常工作,但如果我的源有大约500条记录则无效。
与结果计数无关,可以通过maxItem
参数进行管理。此外,从服务器获取JSON字符串没有问题,因为我可以毫无问题地打印它。
我理所当然地知道,我不应该在我的页面预加载它们并根据输入搜索它,但在我的情况下,点击服务器进行搜索不是一个选项,我想从静态数据执行搜索在我看来,我有。这是我的代码:
$.typeahead({
input: "#List .typeahead",
minLength: 3,
templateValue: "{{Text}}",
display: ["Text", "Subtext"],
emptyTemplate: 'No results for "{{query}}"',
template: '<span>' +
'<span class="result" id="{{Value}}">{{Text}}</span>' +
'</span>',
source: {
Issuer: {
data: @Html.Raw(Model.EveryThing)
}
}
});
在上面的代码中,如果Model.Everything
有40-50条记录,那么它可以正常工作,但不适用于大约500条记录。
附加信息:
在弄清楚问题之后,想稍微解释一下,因为这可能对某人有所帮助。通过使用上面的代码,您可以根据两个字段Text
和Subtext
搜索列表,但用户只能看到结果中的文本,然后可以从匹配的选项中进行选择。如果您想在多个字段上执行搜索但只显示一个字段,这将非常有用。
答案 0 :(得分:0)
在我自己创建示例数据之后计算出来,而不是依赖于服务器响应。问题不在于结果的长度,而是结果中的空条目。
在我的数据中,很少有Subtext
的对象为NULL,这导致了问题,我通过用空字符串替换NULL来修复它,现在按预期工作。