2011-12-21 3 views
2

Я использую AutoCompleteExtender от AjaxControlToolkit на TextBox.Автозаполнение AJAX не работает

Проще говоря, когда я перетащить инструмент AutoCompleteExtender на мой TextBox, а затем нажмите на кнопку «Добавить автозаполнения страничный метод», я получаю следующее сообщение об ошибке:

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

После прибегая к помощи ошибки, В основном я создал свой собственный веб-сервис под названием 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> 

Когда я запускаю сайт .... и введите в текстовое поле, ничего не происходит. Экран не показан. Даже если я наберу «Звезду».

Что мне не хватает и почему я получил эту ошибку в начале?

P.S. Я нахожусь на своих университетских компьютерах, поэтому, я думаю, что ошибка может быть связана с типом сети, которую я использую. не уверен.

Любая помощь ВЫСОКО ВЫСОКО ВЫСОКО ценится !!

Спасибо.

+1

У меня это работает. Я в основном сделал сайт вместо приложения веб-сайта. По какой-то причине это устранило проблему. – Subby

+0

Вы действительно должны опубликовать это как ответ. –

ответ

0

У меня это работает. Вот как я ее исправил:

Мой проект был «Приложением веб-сайта» в Visual Studio. Когда я просто создал проект «Веб-сайт», все это отлично работало ... Я не знаю, почему, просто так.

Так что, если у кого-то еще такая же проблема, попробуйте перевести код на проект «Веб-сайт», а не на проект «Веб-приложение».

Надеюсь, что это поможет.

Смежные вопросы