2011-12-21 175 views
2

我正在使用來自AjaxControlToolkit的AutoCompleteExtenderTextBox上。自動完成AJAX不工作

簡單地說,當我拖上我的文本框掉落AutoCompleteExtender工具,然後單擊「添加自動完成頁面的方法」,我得到以下錯誤:

Cannot create page method "GetCompletionlist because no CodeBehind or CodeFile was found!

谷歌搜索的錯誤後,我基本上創建了自己的Web服務AutoCompel.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> 

當我運行的網站....並在文本框中鍵入,沒有任何反應。不顯示擴展程序。即使我輸入「星」。

我錯過了什麼,爲什麼我一開始就得到這個錯誤?

P.S.我在我的大學計算機上,所以我認爲這個錯誤可能是由於我使用的網絡類型。不確定。

任何幫助非常高度高度讚賞!

謝謝。

+1

我知道它的工作。我基本上做了一個網站而不是一個網站應用程序。出於某種原因,解決了這個問題。 – Subby 2011-12-24 18:13:36

+0

你真的應該發佈這個答案。 – 2011-12-24 23:26:24

回答

0

我明白了。這是我如何修復它:

我的項目是在Visual Studio中的「網站應用程序」。當我簡單地做了一個「網站」項目時,它一切都很完美......我不知道爲什麼,它只是做了。

因此,如果其他人有相同的問題,請嘗試將代碼移植到「網站」項目而不是「網站應用程序」項目。

希望有所幫助。