Как мы можем интегрировать автозаполнение jQuery, используя asp.net, webservice и базу данных sql? - PullRequest
1 голос
/ 19 января 2009

Я пытаюсь реализовать код, указанный для "jQuery Autocomplete и ASP.NET", но не удалось его интегрировать, потому что вы используете дозвуковые запросы к базе данных.

Итак, вы можете рассказать мне, как сделать запрос в sqldatabase и связать результат запроса с плагином из веб-сервиса asp.net с использованием C #?

Ответы [ 2 ]

2 голосов
/ 27 мая 2009

Это довольно простая задача, суть в том, что расширитель автозаполнения jQuery ожидает массив значений. Вот пример того, как я анализирую стандартные результаты XML из веб-службы ASMX для использования с расширителем автозаполнения jQuery.

Поскольку ASP.NET любит переписывать ваши идентификаторы, вы можете передать ClientID для получения динамического идентификатора.

    $("#<%= TextBox1.ClientID %>").autocomplete("/Demo/WebSvc.asmx/SuggestCustomers", {
        parse: function(data) {
            var parsed = [];

            $(data).find("string").each(function() {
                parsed[parsed.length] = {
                    data: [$(this).text()],
                    value: $(this).text(),
                    result: [$(this).text()]
                };
            });
            return parsed;
        },
        dataType: "xml"
    });

Вот как будет выглядеть связанный веб-сервис, не забудьте раскомментировать атрибут [ScriptService] в веб-сервисе:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WebSvc: WebService
{
    [WebMethod]
    public string[] SuggestedCustomers(string q)
    {
        // Do Query

        // Add items into string array
        List<string> items = new List<string>();
        while (dr.Read())
        {
            items.Add(dr[0].ToString());
        }

        // Return array
        return items.ToArray();
    }

}
0 голосов
/ 19 января 2009

Я не бегло говорю на asp.net, но в основном, как и большинство вопросов веб-кодирования, это включает разбивку вашей проблемы на более мелкие.

С архитектурной точки зрения ваши компоненты могут включать следующее ...

  • сервисный уровень, который потенциально использует вашу базу данных и т. Д. Для ответа или получения результата для вашего запроса.
  • веб-компонент или точка входа в службу, которая использует завершенную службу, упомянутую выше, для возврата данных в формате, который может легко понять browesrr - например, JSON.
  • некоторый JavaScript, использующий jquery, который вызывает конечную точку, определенную в непосредственной точке выше.
  • написать модульные тесты для всех вышеперечисленных компонентов - не забывайте проверять случаи сбоев, потому что, как мы все знаем, программное обеспечение иногда дает сбой ...
...