ASP.Net AJAX автозаполнение не работает - PullRequest
1 голос
/ 01 ноября 2010

Я посмотрел на эту ссылку и перепробовал все предложения, но мое автозаполнение Asp.Net AJAX по-прежнему не работает.

У меня есть тестовый проект с только меткой, текстовым полем и автозаполнением:

<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>

У меня нет кода на странице aspx. В TestWebService.asmx.cs у меня есть:

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

Теоретически, в моем текстовом поле должно быть выпадающее меню автозаполнения, содержащее 3 экземпляра слова "тест". На практике я могу ввести в текст все, что захочу, и ничего не происходит. Кто-нибудь знает, что я делаю не так?

Ответы [ 4 ]

0 голосов
/ 24 сентября 2015

Я столкнулся с похожей проблемой, и она была решена путем удаления этих строк в файле 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>
0 голосов
/ 01 ноября 2010

Я понял это.Я неправильно написал название WebMethod.Если вы заметили, это «GetCompetionList», а не «GetCompletionList».

Теперь все работает.

0 голосов
/ 31 января 2014

вы должны использовать

слово (статическое) после Public в вашем коде

[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 голосов
/ 01 ноября 2010

Похоже, что в методе вашего веб-сервиса отсутствует аргумент.Также убедитесь, что вы установили правильные стили для выпадающего списка автозаполнения.Другими словами, сравните ваш код с ссылкой .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...