asp.net Webforms アプリケーションで Bootstrap Typeahead を実装する方法の良い例を探しています。
アプリケーションは、すでに Bootstrap テーマとさまざまなプラグインを使用しています。ここで、ユーザーが最低 3 文字を入力してデータセットを検索できるようにしたいと考えています。ユーザーが 3 文字を入力すると、スクリプトがトリガーされ、入力した単語に一致する値の検索が Web メソッドで開始され、結果がユーザーに配信されます。
これまでネットで見た例から、私はこれを持っています:
[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>