用webservice数据填充jQuery自动完成列表?
问题描述:
这是我的web服务负责填补autocompleate:用webservice数据填充jQuery自动完成列表?
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
[WebMethod]
public List<Farms> GetFarms1()
{
PlaseTableAdapter pta = new PlaseTableAdapter();
PlaseLande.PlaseDataTable pdt = pta.GetData();
List<Farms> farms = new List<Farms>();
foreach (DataRow dr in pdt)
{
string farmName = (string)dr["FARMNAME"];
string farmID = (string)dr["FARMID"];
farms.Add(new Farms(farmID, farmName));
}
return farms;
}
public class Farms
{
public Farms(string farmid, string farmname)
{
FARMID = farmid;
FARMNAME = farmname;
}
public string FARMID { get; set; }
public string FARMNAME { get; set; }
}
}
这是jQuery来从WebService
$("#txtFarms").autocomplete("WebService.asmx/GetFarms1", {
dataType: 'json',
parse: function(data) {
var parsed = [];
data = data.Farms;
for (var i = 0; i < data.length; i++) {
parsed[parsed.length] = {
data: data[i],
value: data[i].FARMNAME,
result: data[i].FARMNAME
};
}
return parsed;
},
formatItem: function(item) {
alert(item);
return item.FARMNAME + ' (' + item.FARMID + ')';
}
});
我的代码不干活我失去了什么得到JSON数据? 坦克的任何援助!
答
寻找返回一个真正的json。我认为你应该添加一个dataAnnotation ..
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
所以在你的代码:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<Farms> GetFarms1() // why you don't have no parameter like the term of search ?
{
PlaseTableAdapter pta = new PlaseTableAdapter();
PlaseLande.PlaseDataTable pdt = pta.GetData();
List<Farms> farms = new List<Farms>();
foreach (DataRow dr in pdt)
{
string farmName = (string)dr["FARMNAME"];
string farmID = (string)dr["FARMID"];
farms.Add(new Farms(farmID, farmName));
}
return farms;
}
看到How to return JSON from webservice
$("#txtFarms").autocomplete({
source: function(request, response) {
$.ajax({
url: "WebService.asmx/GetFarms1",
dataType: "json",
data: {
name_startsWith: request.term // i don't see it in your code ... why?
},
success: function(data) {
response($.map(data.Farms, function(item) {
return {
label: item.FARMNAME + ' (' + item.FARMID + ')';,
value: item.FARMNAME
}
}));
}
});
的更多信息:http://jqueryui.com/autocomplete/#remote-jsonp
它可以帮助你?
你的代码是做什么的? – 2010-02-08 07:03:41
它使用至少就是我想要的web服务填充jQuery自动完成列表。 – qorsmond 2010-02-08 07:08:50
@user不,就像运行代码时会发生什么?在我们可以帮助您解决问题之前,我们需要知道它有什么问题。 – 2010-02-12 04:19:27