我有一个类clsArtistList
的ASP文本框放在usercontrol
<asp:TextBox CssClass="clsArtistList" ID="txtArtistList" runat="server"></asp:TextBox>
然后我使用jquery-ui-1.8.16为我的文本框创建自动完成功能。我从http://www.dotnetcurry.com/ShowArticle.aspx?ID=515复制了它,但我真的不知道它是如何工作的
$(".clsArtistList").autocomplete({
source: function(request, response) {
$.ajax({
url: "../ArtistWS.asmx/GetAllArtists",
data: "{ 'ARTIST_NAME': '" + request.term + "' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function(data) { return data; },
success: function(data) {
response($.map(data.d, function(item) {
return {
value: item.ARTIST_NAME
}
}))
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
},
minLength: 1
});
这是我的网络服务
[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public List<Artist> GetAllArtists(string ARTIST_NAME) {
ArtistCollection coll = ArtistManager.GetAllArtists();
return coll.FindAll(a => a.ARTIST_NAME.ToLower().StartsWith(ARTIST_NAME.ToLower()));
}
为了您的兴趣,我的ArtistCollection是一个艺术家名单。 Artist类看起来像这样:
public class Artist {
public string ARTIST_ID { get; set; }
public string ARTIST_NAME { get; set; }
public string ARTIST_NATIONALITY { get; set; }
public string ARTIST_INFO { get; set; }
}
但代码不起作用。每次我输入时,我都会收到一条消息警告内部服务器错误
提前谢谢你。我需要你的帮助
答案 0 :(得分:0)
如果您收到服务器错误消息,我会认为问题不在javascript中,而是在服务器上的某处。
您是否尝试调试ASP Web服务代码?
答案 1 :(得分:0)
我认为问题可能是您设置网址的价值。
尝试从通话中删除“..”
$.ajax({
url: "/ArtistWS.asmx/GetAllArtists",