如何正确格式化自动填充数据

时间:2014-03-17 14:18:00

标签: c# javascript jquery .net autocomplete

在这里使用.NET,我得到了什么......返回了正确的结果,但它们全部合并为一个长字符串。我该如何制作,以便我可以从返回的结果中一次选择一个项目?我知道我在javascript中的源配置不正确。任何帮助,将不胜感激。感谢

代码背后:

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string[] GetEmails(string emailContains)
{
    LoginSet logins = staticLogic.searchLogins(staticClient, new SearchCriteriaSet());

    List<BaseEntry> loginList = logins.Where(x => ((LoginEntry)x).LoginEMail.Contains(emailContains)).ToList();

    List<string> emails = new List<string>();

    for (int i = 0; i < loginList.Count(); ++i)
    {
        string email = ((LoginEntry)loginList.ElementAt(i)).LoginEMail;
        emails.Add(email);
    }

    //JavaScriptSerializer serializer = new JavaScriptSerializer();
    //string json = serializer.Serialize(emails.ToArray());

    return emails.ToArray();
}

UI:

<tr><td>Destination:</td>
    <td>
        <div class="ui-widget">
            <input type="text" name="EMailReportDestination" id="EMailReportDestination" size="60" runat="server" />
        </div>
    </td>
</tr>

JQuery的:

        $('#EMailReportDestination').autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: '/reports/editemailreport.aspx/GetEmails',
                    type: 'POST',
                    dataType: 'json',
                    data: "{'emailContains':'" + request.term + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataFilter: function (data) { return data; },

                    success: function (data) {
                        //console.log('autocomplete success: ' + data);
                        response($.map(data, function (item) {
                            return {
                                label: item,
                                value: item
                            }
                        }));
                    },
                    error: function (xhr, ajaxOptions, thrownError) {
                        console.log("autocomplete error: " + xhr.status + ", " + thrownError);
                    }
                });

            },
            minLength: 2,
            select: function (event, ui) {
                console.log(ui.item ? "selected: " + ui.item.label : "nothing selected, input was " + this.value);
            },
            open: function () {
                $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
            },
            close: function () {
                $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
            }
        });

1 个答案:

答案 0 :(得分:1)

  

我试过,我不知道data.d中返回的数组。试着改变

response($.map(data, function (item) 

 response($.map(data.d, function (item)