【问题标题】:Jquery UI autocomplete and webserviceJquery UI 自动完成和网络服务
【发布时间】:2011-12-22 09:16:38
【问题描述】:

我有一个 clsArtistList 类的 ASP 文本框放置在用户控件中

<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; }        
}

但是代码不起作用。每次我输入时,我都会收到一条消息警报内部服务器错误

提前谢谢你。我需要你的帮助

【问题讨论】:

  • 网络服务是否正在运行?您是否尝试过将浏览器指向 Web 服务并查看从中得到了什么?
  • 我试过了,结果还可以。但它是 XML 格式的。文档说结果必须是 JSON。你知道如何返回 JSON 吗?
  • @HoàngLâmHuỳnh:您可以使用 XML,但您必须在客户端解析结果。 XML 是什么样的?

标签: javascript jquery asp.net ajax autocomplete


【解决方案1】:

如果您收到服务器错误消息,我会假设问题不在 javascript 中,而是在您的服务器上。

您是否尝试调试过您的 ASP Web 服务代码?

【讨论】:

  • 我已经调试了服务代码,很简单,还可以。我也在浏览器中测试了WS,没问题。但响应格式是 XML。可以接受吗?
【解决方案2】:

我认为问题可能是您将 url 设置为的值。

尝试从通话中删除“..”

$.ajax({ 
         url: "/ArtistWS.asmx/GetAllArtists", 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2012-10-30
    • 2011-07-23
    • 1970-01-01
    相关资源
    最近更新 更多