Skip to main content
 首页 » 编程设计

c#之AJAX 控制工具包自动完成扩展器不工作

2024年02月03日36telwanggs

我无法使用 AJAX CT 自动完成功能。问题是当我开始在文本框中书写时没有任何反应。我遇到的第一个问题是当我尝试添加自动完成页面方法时出现错误:“无法创建页面方法“GetCompletionList”...”。然后我尝试手动创建它,但仍然没有任何反应。

这是 AdministracijaOsoba.aspx 代码:

<asp:TextBox ID="txtOsoba" runat="server"></asp:TextBox><asp:AutoCompleteExtender 
                    ID="AutoCompleteExtender1" runat="server" ScriptPath=""  
                    ServiceMethod="GetCompletionList" ServicePath="AdministracijaOsoba.aspx.cs"  
                    TargetControlID="txtOsoba" UseContextKey="True"> 
                </asp:AutoCompleteExtender> 

这是 AdministracijaOsoba.aspx.cs 代码:

public static string[] GetCompletionList(string prefixText, int count, string contextKey) 
    { 
        PravosudnaAkademijaEntities db = new PravosudnaAkademijaEntities(); 
 
        var osoba = from o in db.osobas 
                    orderby o.osoba_prezime 
                    select new { o.osoba_id, person = o.osoba_prezime + " " + o.osoba_ime }; 
 
        string[] main = new string[0]; 
 
        foreach (var o in osoba) 
        { 
            if (o.person.StartsWith(prefixText)) 
            { 
                Array.Resize(ref main, main.Length + 1); 
                main[main.Length - 1] = o.person.ToString(); 
 
                if (main.Length == 15) 
                { 
                    break; 
                } 
            } 
        } 
 
        Array.Sort(main); 
        return main; 
    } 

请注意,我正在使用 LINQ to Entities。如有任何帮助,我们将不胜感激。

问候!

请您参考如下方法:

后面的代码应该是这样的

[System.Web.Services.WebMethod] 
[System.Web.Script.Services.ScriptMethod] 
public static string[] GetCompletionList prefixText, int count, string contextKey) 
{....} 

此外,如果您使用的是页面脚本方法,则无需为您的 ajax 扩展器提供 servicepath 属性。