簡體   English   中英

如何獲取正確格式的自動完成數據

[英]How to get autocomplete data correctly formatted

使用.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();
}

用戶界面:

<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");
            }
        });

我嘗試過,但我不知道data.d中返回的數組。 嘗試改變

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM