【问题标题】:AutoComplete AJAX Not Working自动完成 AJAX 不工作
【发布时间】:2012-01-25 11:30:39
【问题描述】:

我在 TextBox 上使用来自 AjaxControlToolkit 的 AutoCompleteExtender

简单地说,当我将AutoCompleteExtender 工具拖放到我的TextBox 上,然后单击“添加自动完成页面方法”时,出现以下错误:

无法创建页面方法“GetCompletionlist,因为没有 CodeBehind 或 已找到 CodeFile!

在谷歌搜索错误后,我基本上创建了自己的 Web 服务,称为 AutoCompelte.asmx。下面是该类的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace AutoCompleteTest
{
    /// <summary>
    /// Summary description for AutoComplete
    /// </summary>
    [WebService(Namespace = "http://microsoft.com/webservices/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService]
    public class AutoComplete : System.Web.Services.WebService
    {
        [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
        public static string[] GetCompletionList(string prefixText, int count, string contextKey)
        {
            // Create array of movies  
            string[] movies = { "Star Wars", "Star Trek", "Superman", "Memento", "Shrek", "Shrek II" };

            // Return matching movies  
            return (from m in movies where m.StartsWith(prefixText, StringComparison.CurrentCultureIgnoreCase) select m).Take(count).ToArray();
        }  
    }
}

当然,上面是虚拟数据……以后,我会从数据库中获取数据。

我的 Default.aspx 看起来像这样:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </asp:ToolkitScriptManager>
    From
<asp:TextBox ID="txtFrom" runat="server">
</asp:TextBox>  


<asp:AutoCompleteExtender runat="server" 
    ID="txtFrom_AutoCompleteExtender" 
    TargetControlID="txtFrom"
    ServiceMethod="GetCompletionList"
    ServicePath="AutoComplete.asmx"
    MinimumPrefixLength="2" 
    CompletionInterval="1000"
    EnableCaching="true"
    CompletionSetCount="20"
    DelimiterCharacters=";, :"
    ShowOnlyCurrentWordInCompletionListItem="true">
</asp:AutoCompleteExtender>

当我运行网站....并在文本框中输入时,什么也没有发生。没有显示扩展器。即使我输入“星”。

我错过了什么,为什么我一开始就收到这个错误?

附:我在我的大学电脑上,所以我认为这个错误可能是由于我使用的网络类型。不确定。

任何帮助都非常感谢!

谢谢。

【问题讨论】:

  • 我搞定了。我基本上做了一个网站而不是网站应用程序。出于某种原因,这解决了问题。
  • 你真的应该把这个作为答案发布。

标签: asp.net autocomplete textbox autocompleteextender


【解决方案1】:

我让它工作了。这就是我修复它的方法:

我的项目是 Visual Studio 中的“网站应用程序”。当我简单地制作了一个“网站”项目时,一切都很完美......我不知道为什么,它就是这样。

因此,如果其他人遇到同样的问题,请尝试将代码移植到“网站”项目而不是“网站应用程序”项目。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2015-05-06
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    相关资源
    最近更新 更多