JQuery UI автозаполнение и веб-сервис - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть текстовое поле ASP класса clsArtistList, помещенное в 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; }        
}

Но код не работает.Каждый раз, когда я печатаю, я получаю сообщение об ошибке Внутренняя ошибка сервера

Заранее спасибо.Мне нужна твоя помощь

Ответы [ 2 ]

0 голосов
/ 24 декабря 2011

Я думаю, что проблема может быть в значении, на которое вы устанавливаете URL.

Попробуйте удалить ".." из звонка

$.ajax({ 
         url: "/ArtistWS.asmx/GetAllArtists", 
0 голосов
/ 22 декабря 2011

Если вы получаете сообщение об ошибке сервера, я предполагаю, что проблема не в javascript, а где-то на вашем сервере.

Вы пытались отладить код веб-службы ASP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...