Я ищу хороший пример того, как я могу реализовать Bootstrap Typeahead с приложением asp.net Webforms.
Приложение уже использует тему Bootstrap и различные плагины. Теперь я хочу, чтобы пользователь мог выполнять поиск по набору данных, введя минимум три буквы. Как только пользователь введет три буквы, запустится сценарий, который начнет поиск значений, соответствующих введенному слову, с помощью веб-метода, а затем доставит результаты пользователю.
Из примеров, которые я видел до сих пор в сети, у меня есть это:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<string> GetNames(string term)
{
// A list of names to mimic results from a database
List<string> nameList = new List<string>
{
"Jonathan", "Lisa", "Jordan", "Tyler", "Susan", "Brandon", "Clayton", "Elizabeth", "Jennifer"
};
var results = nameList.Where(n =>
n.StartsWith(term, StringComparison.OrdinalIgnoreCase));
return new JsonResult()
{
Data = results.ToArray(),
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
В фрагменте кода выше JsonResult() и JsonRequestBehavior не распознаются, и я получаю ошибки. Затем на стороне клиента у меня есть это:
<input type="text" id="txtSearch" data-provide="typeahead" runat="server" />
Тогда скрипт у меня такой (тоже нашел в сети):
<script type="text/javascript">
$(document).ready(function () {
$('#<%= txtSearch.ClientID %>').typeahead({
source: function (query, process) {
},
updater: function (item) {
// implementation
},
matcher: function (item) {
if (item.toLowerCase().indexOf(this.query.trim().toLowerCase()) != -1) {
return true;
}
},
sorter: function (items) {
return items.sort();
},
highlighter: function (item) {
var regex = new RegExp( '(' + this.query + ')', 'gi' );
return item.replace( regex, "<strong>$1</strong>" );
},
});
});
</script>