我正在使用jQuery UI Autocomplete插件在ASP.NET Web应用程序中更好地输入数据。
http://jqueryui.com/demos/autocomplete/
但是,我想我已经在这个插件中丢失了。 我想问一下,为了将这个自动完成功能与从数据库中检索的数据一起使用,我该怎么办?
我希望Ajax应该用于实时搜索, 但是在看完上面网站上的演示后,我不知道怎么做。
非常感谢。
更新
这是我尝试过的代码,不起作用,但在firebug中也没有错误。
$('#FirstName').autocomplete({
source: function (request, response) {
$.ajax({
url: "/Contact/FirstNameLookup?firstName=",
type: "POST",
data: {
"firstName": $('#FirstName').val()
},
success: function (data) {
response($.map(data, function (item) {
return {
label: item.FirstName,
value: item.FistName
}
}));
}
});
}
});
答案 0 :(得分:2)
您需要创建一个执行查找的操作,并将结果作为JsonResult
返回e.g。
public ActionResult FirstNameLookup(string firstName)
{
var contacts = FindContacts(firstname);
return Json(contacts.ToArray(), JsonRequestBehavior.AllowGet);
}
答案 1 :(得分:1)
我不确定这是否能解决您的所有问题,但您可以进行一些编辑。
您不需要url的“?firstname =”部分,因为您正在为ajax请求使用data参数。
而不是使用$('#FirstName')。val()抓取您的搜索字词,请尝试使用请求对象的term属性(request.term)。
例如:
$('#FirstName').autocomplete({
source: function (request, response) {
$.ajax({
url: "/Contact/FirstNameLookup",
type: "POST",
data: {
"firstName": request.term
},
success: function (data) {
response($.map(data, function (item) {
return {
label: item.FirstName,
value: item.FistName
}
}));
}
});
}
});