提高速度AJAX AutoCompletion - ASP.NET C#

时间:2011-04-22 22:28:02

标签: c# asp.net ajax

第一个问题是弹出的内容列表远远低于实际文本框。见图。 pic

第二个问题是使用自动完成需要一两秒才能获得任何结果。我怀疑它的数据库/检索相关,因为使用本地字符串数组的名称,给我相同的结果。

的.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 个答案:

答案 0 :(得分:1)

尝试在AutoCompleteExtender上设置低CompletionInterval。您遇到的延迟很大一部分可能是由此(1秒默认)延迟造成的。