除了“q”参数之外,我如何将附加参数传递给Jquery自动完成

时间:2011-06-21 04:46:15

标签: jquery asp.net jquery-ui handler

我使用过jquery autocomplete 1.1版本。

我必须获得特定圈子的商店列表。

为此,我有下拉列表和文本框。

下拉列表包含圈子列表

我需要将此“cid”作为附加参数传递给asp.net Handler 在哪里我可以检索这个“cid”并查询基于的数据库 文字输入了“cid”。

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:0)

您可以为autocomplete's source option使用回调函数。因此,您需要做的就是设置一个回调函数,该函数执行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函数将其交还给自动完成小部件。为了便于说明,我假设您的服务器将匹配作为换行符分隔列表返回,您可能需要对您的实际数据做一些不同的事情。

答案 1 :(得分:0)

我通过传递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对象

的参数