Повышение скорости автозаполнения AJAX - ASP.NET C # - PullRequest
0 голосов
/ 23 апреля 2011

Первая проблема - это список того, что всплывает, гораздо ниже фактического текстового поля. Смотрите рис. pic

2-ая проблема, это занимает целую секунду или две, чтобы получить какие-либо результаты, используя автозаполнение. Я сомневаюсь, что это связано с базой данных / поиском, потому что использование локального массива имен строк дает мне те же результаты.

.aspx

            <asp:ScriptManager ID="ScriptManager1" runat="server">

            </asp:ScriptManager>

             <asp:TextBox ID="txtFrom" runat="server">
            </asp:TextBox>
            <ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtFrom" MinimumPrefixLength="1" ServiceMethod="GetSuggestions" EnableCaching="true">
            </ajaxToolkit:AutoCompleteExtender>

Мой веб-метод находится в моем классе CS

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string[] GetSuggestions(string prefixText, int count)
{
    IList<String> donors = new List<String>();

    NHibernateSessionManager sessionManager = new NHibernateSessionManager();
    NHibernate.ISession session = sessionManager.GetSession();
    NHibernateDataProvider2 provider = new BT4SGWebApplication.NHibernateDataProvider2(session);

    ExtraUserInfo user = provider.CRIT_GetDistinctExtraUserInfoByUserName(System.Web.HttpContext.Current.User.Identity.Name)[0];

    return user.GroupTable.PayorDonors.Where(x => x.Name.FullName.StartsWith(prefixText)).OrderBy(x => x.Name.FullName)
    .Select<PayorDonor, string>(x => x.Name.FullName).ToArray();
}

PS - хит не моя фамилия.

1 Ответ

1 голос
/ 23 апреля 2011

Попробуйте установить низкий CompletionInterval на вашем AutoCompleteExtender. Большая часть задержки, с которой вы столкнулись, вероятно, является результатом этой (1 секунда по умолчанию) задержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...