Я использую JQuery typeahed из RunningCoder .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
, но пользователь увидит только текст в результате и затем сможет выбрать один из подходящих вариантов.Это будет очень полезно, если вы хотите выполнить поиск по нескольким полям, но показывать только одно поле.