2010-11-01 2 views
1

J'ai regardé this link et j'ai essayé toutes les suggestions là-bas, mais ma saisie automatique AJAX Asp.Net ne fonctionne toujours pas.ASP.Net AJAX Saisie semi-automatique ne fonctionnant pas

J'ai un projet de test avec seulement une étiquette, zone de texte un l'auto-completer:

<asp:ToolkitScriptManager ID="ScriptManager" runat="server"> 
</asp:ToolkitScriptManager> 
<asp:Label ID="FieldLabel" Text="Label:" runat="server"></asp:Label> 
<asp:TextBox ID="InputField" runat="server"></asp:TextBox> 
<asp:AutoCompleteExtender 
    ID="Autocompleter" 
    TargetControlID="InputField" 
    ServiceMethod="GetCompletionList" 
    ServicePath="~/TestWebService.asmx" 
    MinimumPrefixLength="1" 
    CompletionInterval="1000" 
    runat="server"> 
</asp:AutoCompleteExtender> 

Je n'ont pas de code-behind sur la page ASPX. En TestWebService.asmx.cs, je:

[System.Web.Services.WebMethod] 
[System.Web.Script.Services.ScriptMethod] 
public string[] GetCompetionList(string prefixText, int count) 
{ 
    string[] results = { "test", "test", "test" }; 
    return results; 
} 

En théorie, mon champ de saisie devrait avoir un menu déroulant contenant 3 autocomplete occurrences du mot « test ». En pratique, je peux taper tout ce que je veux dans la zone de texte et rien ne se passe. Est-ce que quelqu'un a une idée de ce que je fais mal?

+0

Le même code que j'ai essayé mais ne fonctionne pas pour moi. tous les autres paramètres doivent être modifiés. – siri

Répondre

0

Je l'ai compris. J'ai mal orthographié le nom de WebMethod. Si vous remarquez, c'est "GetCompetionList", pas "GetCompletionList".

Maintenant tout fonctionne.

0

Il semble que votre méthode de service Web manque un argument. Assurez-vous également que vous avez défini les styles appropriés pour votre "liste déroulante" de saisie semi-automatique. En d'autres termes, comparez votre code à the reference.

+1

Le vrai problème est que je ne peux pas épeler. Voir ma réponse ci-dessous. – quanticle

0

vous devriez utiliser

le mot (statique) après publique dans votre code

[System.Web.Services.WebMethod] 
[System.Web.Script.Services.ScriptMethod] 

public static string[] GetCompetionList(string prefixText, int count) 

{ 
    string[] results = { "test", "test", "test" }; 


    return results; 

} 
0

Je faisais face à la question et qui a été similaire résolu par la suppression de ces lignes dans le fichier web.config.

<rules> 
     <rule name="san aspx"> 
      <!--Removes the .aspx extension for all pages.--> 
      <match url="(.*)"/> 
      <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" />  
      </conditions> 
      <action type="Rewrite" url="{R:1}.aspx"/> 
     </rule> 
     </rules> 
Questions connexes