Извлечение данных sql в автозаполнение jquery - PullRequest
1 голос
/ 06 июля 2011

Я искал ответ на этот вопрос, но не нашел именно то, что искал. Прошу прощения, если на этот вопрос ответили в другой теме.

У меня есть очень большая таблица sql, которую я хотел бы использовать в поле ввода автозаполнения jquery. Я знаю, что мне нужно вернуть эти данные в формате json, но я не уверен, что это лучший способ сделать это. Это поле находится в приложении ASP.net MVC.

Я знаю, что, возможно, смогу создать страницу php, которая возвращает результат, но мне это кажется немного грязным. Лучший способ - создать веб-службу, которую я называю?

Заранее спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 07 июля 2011

Вот некоторый код относительно того, как я достиг этого. Я использую плагин jquery UI

JavaScript в моем представлении

$ (function () {

        $("#suburb").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: '@Url.Action("ManufacturerAutoComplete", "AutoComplete")', type: "POST", dataType: "json",
                    data: { searchText: request.term, maxResults: 10 },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.DisplayValue, value: item.Suburb, id: item.SuburbID, postcode: item.Postcode, state: item.State }
                        }))
                    }
                })
            },
            select: function (event, ui) {

                $("#state").val(ui.item.state);
                $("#postcode").val(ui.item.postcode);

            }
        });

вход на мой взгляд

<input type="text" id="suburb" />

И, наконец, код из моего контроллера

[HttpPost]
        public JsonResult ManufacturerAutoComplete(string searchText)
        {

            if (searchText.Length > 2)
            {
                var service = new SuburbSearchServiceClient();
                var results = service.SearchSuburb(searchText, "Australia");

                List<Suburbs> sList = new List<Suburbs>();

                foreach (var item in results)
                {
                    sList.Add(new Suburbs() { SuburbID = item.SuburbID, Suburb = item.Suburb, State = item.State, Postcode = item.Postcode, DisplayValue = item.Suburb + " - " + item.State + " - " + item.Postcode });
                }

                return Json(sList);
            }
            else
            {
                var data = string.Empty;
                return Json(data);
            }
        }

Вам необходимо включить js и css из плагина jquery-ui, и результаты вашего автозаполнения будут показаны под элементом ввода. Как видно из метода JsonResult, я вызываю веб-сервис для получения данных о моем пригороде, но это может произойти из любой точки реальности. Надеюсь это поможет.

1 голос
/ 07 июля 2011

Вот пример jquery-autocomplete , который может пригодиться для легкого запуска!

0 голосов
/ 06 июля 2011

Вот хороший пример http://blog.schuager.com/2008/09/jquery-autocomplete-json-apsnet-mvc.html

Если вам нужно настроить результат JSON, вы можете использовать JavaScriptConverter class

...