【问题标题】:Autocomplete Web Service in ASP.Net web formsASP.Net Web 表单中的自动完成 Web 服务
【发布时间】:2016-03-22 05:40:53
【问题描述】:

我有一个用于多项选择的网络服务,它工作正常,但我得到了未定义的数据。任何人都可以告诉我解决方案。我也在这篇文章中附上了我的错误截图,请在下面查看。

网络服务 JSON 代码

<script type="text/javascript">
        $(document).ready(function () {
            SearchText();
        });
function SearchText() {
            $("[id*=ctl00_ContentMain_TextBoxSkills]").autocomplete({
                source: function (request, response) {
                    $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: '<%=ResolveUrl("WebServiceSkills.asmx/GetAutoCompleteData")%>',
                        data: "{'skill':'" + extractLast(request.term) + "'}",
                        dataType: "json",
                        success: function (data) {
                            response(data.d);
                        },
                        error: function (result) {
                            alert("No Result Found");
                        }
                    });
                },
                focus: function () {
                    // prevent value inserted on focus
                    return false;
                },
                select: function (event, ui) {
                    var terms = split(this.value);
                    // remove the current input
                    terms.pop();
                    // add the selected item
                    terms.push(ui.item.value);
                    // add placeholder to get the comma-and-space at the end
                    terms.push("");
                    this.value = terms.join(", ");
                    return false;
                }
            });
            $("#ctl00_ContentMain_TextBoxSkills").bind("keydown", function (event) {
                if (event.keyCode === $.ui.keyCode.TAB &&
                        $(this).data("autocomplete").menu.active) {
                    event.preventDefault();
                }
            })
            function split(val) {
                return val.split(/,\s*/);
            }
            function extractLast(term) {
                return split(term).pop();
            }
        }
    </script>

网络服务:

[WebMethod]

    public List<UserRegistration> GetAutoCompleteData(string skill)
    {
        List<UserRegistration> list = new List<UserRegistration>();
        UserRegistrationHelper userRegistrationHelper = new UserRegistrationHelper();

        using (DataTable dataTable = userRegistrationHelper.GetSkillsList(skill))
        {

            if (CommonFunctions.ValidateDataTable(dataTable))
            {
                foreach (DataRow dr in dataTable.Rows)
                {
                    var SkillsList = new UserRegistration
                    {
                        SkillId = Convert.ToInt32(dr["SkillId"].ToString()),
                        Skills=dr["SkillName"].ToString()
                    };
                    list.Add(SkillsList);
                }
            }
        }
        return list;
    }

此处截图:

【问题讨论】:

    标签: asp.net web-services autocomplete jquery-autocomplete tokenize


    【解决方案1】:

    我得到了答案:

    1:更改 SQL 查询:

    select concat('[', STUFF  
                (  
                    (  
                        SELECT top 15 '","'+ CAST(skillname AS VARCHAR(MAX))  
                        from DNH_Master_Skills where SkillName LIKE '%' + @SkillName + '%'
                        FOR XMl PATH('')  
                    ),1,2,''  
                ),'"]')
    

    2:更改 JSON 代码:

    From: response(data.d); TO: response(Array.parse(data.d));
    

    现在它的工作感觉很开心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 2015-12-18
      • 1970-01-01
      • 2013-03-30
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多