我正在寻找如何使用 asp.net Webforms 应用程序实现 Bootstrap Typeahead 的好例子。
该应用程序已经在使用 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>