从JQuery Autocomplete调用ASMX Web服务

时间:2014-08-25 07:54:45

标签: javascript jquery asp.net autocomplete

我目前正在尝试从asmx服务获取响应并在自动填充文本框中使用它

此处我正在使用的代码:

    $(function () {

            $("#<%=txtParentCat.ClientID %>").autocomplete({
                selectFirst: true,
                source:  Magelia.WebStore.Admin.Scripts.Services.AutoCompleteServices.GetCategoriesFull,
                extraParams: { contains: $('#<%=txtParentCat.ClientID %>').val(), storeId: '<%=this.Page.UnitOfWorkContext.StoreId.ToString() %>' },
                minLength: 0,
                delay: 0,
                autoFocus: true,
                dataType: 'json',
                parse: function (data) {
                    var rows = new Array();
                    for (var i = 0; i < data.length; i++) {
                        rows[i] = { data: data[i], value: data[i], result: data[i] };
                    }
                    return rows;
                },
                formatItem: function (row) {
                    return row;
                },

                autofill: true,

                highlight: false,
                multiple: true,
                multipleSeparator: ";"
                ,
                response: function (event1, ui) {

                    var input = $('#<%=txtParentCat.ClientID %>');
                input.on('keydown', function (event) {
                    var key = event.keyCode || event.charCode;

                    if (key == 8 || key == 46)
                        select = false;
                    else
                        select = true;
                });

                if (select == true && ui.content.length > 0) {
                    var $userVal = this.value;
                    var $newVal = ui.content[0].value;

                    if ($userVal != "") {
                        var n = $newVal.toLowerCase().indexOf($userVal.toLowerCase());

                        if (n == 0)
                            n = n + $userVal.length;

                        if (n != -1) {
                            $("#<%=txtParentCat.ClientID %>").val($newVal);
                            setSelectionRange($("#<%=txtParentCat.ClientID %>").get(0), n, $newVal.length);
                        }
                    }
                }
            }
        });
    });

我一直收到500内部错误,我认为必须这样做是因为我发送了以错误的方式调用网络服务所需的参数。

这里是调用服务所需的参数: Magelia.WebStore.Admin.Scripts.Services.AutoCompleteServices.GetCategoriesFull(含有STOREID,的onSuccess,onFailed,的UserContext)

非常感谢任何帮助。提前谢谢你:)

0 个答案:

没有答案