Как я могу передать дополнительный параметр автозаполнения Jquery в дополнение к параметру "q" - PullRequest
0 голосов
/ 21 июня 2011

Я использовал версию jquery autocomplete 1.1.

Мне нужно получить список магазинов для определенного круга.

Для этого у меня есть выпадающий список и текстовое поле.

Раскрывающийся список содержит список кружков,

Мне нужно передать этот "cid" в качестве дополнительного параметра в обработчик asp.net. где я могу получить этот «cid» и запросить базу данных на основе текст введен в "cid".

любые предложения будут оценены.

Ответы [ 2 ]

0 голосов
/ 21 июня 2011

Я нашел решение, передав cid в качестве строки запроса.

  $(document).ready(function() {
        var cid = $("#ctl00_cphMain_hdnCid").val();
        $("#ctl00_cphMain_txtSearch").focus();
        $("#ctl00_cphMain_txtSearch").autocomplete("AutoCompleteHandler.ashx?cid=" + cid + "&storetype=1", { autoFill: false });
    });

В autocompletehandler.ashx я получил «cid», как показано ниже:

int cid = Convert.ToInt32(context.Request.QueryString["cid"].ToString().Trim());

и использовалэто как параметр для SqlCommand объекта

0 голосов
/ 21 июня 2011

Вы можете использовать функцию обратного вызова для опции source автозаполнения .Итак, все, что вам нужно сделать, это настроить функцию обратного вызова, которая сама вызывает AJAX, чтобы получить возможные совпадения:

source: function(request, response) {
    var cid = 'your cid value from where ever you get it';
    $.ajax({
        // Whatever AJAX options you need go here
        url: '/some/place',
        data: { q: request.term, cid: cid },
        success: function(data) {
            response(data.split('\n'));
        }
    });
}

Текущий поисковый термин находится внутри request.term внутри обратного вызова.Получив расширенный список возможных совпадений, вызовите функцию response, чтобы передать ее обратно в виджет автозаполнения.В иллюстративных целях я предполагаю, что ваш сервер возвращает совпадения в виде списка разделенных новой строкой совпадений, возможно, вам придется сделать что-то немного другое с вашими реальными данными.

...