Передать результат веб-службы ASP.NET плагину jQuery AutoSuggest. - PullRequest
0 голосов
/ 19 декабря 2010

У меня есть веб-служба ASP.NET, которая возвращает список друзей пользователя в форме JSON, чтобы он мог заполнить источник данных плагина AutoSuggest. Я использую ASP.NET 4.0 и JQuery 1.4.4 минимизированы. Когда я пытаюсь вызвать метод autoSuggest, следующий код не работает. Он применяет значение startText к моему текстовому полю, но не заполняет источник данных.

$(document).ready(function () {
        $("input[type=text]").autoSuggest("GetFriends.asmx/GetFriendsList", { minChars: 2, matchCase: false, startText: "Search Username" });
    });  

Вот мой текстовый блок управления:

<asp:TextBox ID="tbSearch" runat="server"></asp:TextBox>

Вот соответствующая часть моего веб-сервиса:

[WebMethod]
public string GetFriendsList()
{
    DataTable dt = GetFriends();
    List<Friend> friends = new List<Friend>();
    string[] items = new string[dt.Rows.Count];

    for (int i=0; i< dt.Rows.Count; i++)
    {
        DataRow dr = dt.Rows[i];
        Friend friend = new Friend();
        friend.value= dr["UserId"].ToString();
        friend.name= dr["UserName"].ToString();
        friends.Add(friend);
    }
    return JsonConvert.SerializeObject(friends, Formatting.Indented);
}

Любые предложения о том, как мне заполнить источник данных для плагина AutoSuggest из моего веб-сервиса? Вот ссылка на страницу разработчика: http://code.drewwilson.com/entry/autosuggest-jquery-plugin

1 Ответ

0 голосов
/ 23 декабря 2010

Проведя немного больше исследований, я обнаружил, что ASP .NET WebServices не возвращают данные, не будучи сначала заключенными в XML. Я решил использовать универсальный обработчик и визуализировать JSON, используя обработчик. Я использовал свой существующий код для кодирования JSON, а затем визуализировал JSON следующим образом:

    string str = Newtonsoft.Json.JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.Indented);
    context.Response.ContentType = "application/json";
    context.Response.Write(str);

Я поместил приведенный выше код в метод ProcessRequest моего обработчика, и теперь все работает хорошо. Могут быть и другие способы сделать JSON доступными, но пока этот работает.

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