現在、商品やテキストページを検索するクライアントのウェブサイトにオートコンプリートを実装しようとしています。このために、匿名オブジェクトをJSONとして返すジェネリックハンドラーを作成しました。私の匿名オブジェクトは次のようになります。
new
{
Name = product.Name,
Url = product.Url,
ImageUrl = imageUrl
});
オブジェクトのリストは、標準の.NETJavascriptSerializerでシリアル化されます。
そして私のJavaScriptは次のようになります:
searchField.autocomplete({
source: "/handlers/SearchHandler.ashx",
response: function (event, ui) {
...
}
});
ただし、JSONからオートコンプリートドロップダウンボックスに値を取得することに関しては、少し行き詰まっています。また、結果をリンクとして使用したいので、ユーザーがドロップダウンで結果をクリックすると、ページ/製品にリダイレクトされます。
誰かがこれを達成する方法を知っていますか?
解決:
searchField.autocomplete({
source: "/handlers/SearchHandler.ashx?nodeId=" + currentNodeId,
search: function (event, ui) {
searchField.css("background-image", "url('../img/ajax-loader-small.gif')");
},
response: function (event, ui) {
searchField.css("background-image", "");
}
}).data("ui-autocomplete")._renderItem = function (ul, item) {
return $("<li>")
.data("ui-autocomplete-item", item)
.append("<a href='" + item.Url + "'>" + item.Name + "</a>")
.appendTo(ul);
};