AutocompleteExtender не работает на главной странице - PullRequest
2 голосов
/ 03 июля 2010

У меня проблема с расширителем автозаполнения в ASP.NET - он отлично работает на всех моих страницах, но НЕ на главной странице, и я не знаю почему.

Вот мой код:

<asp:TextBox runat="server" ID="txtSearch" Width="200px" CssClass="TextBoxClass"></asp:TextBox>
<cc1:AutoCompleteExtender ID="txtSearch_AutoCompleteExtender" runat="server" 
    TargetControlID="txtSearch"
    CompletionInterval="0" 
    CompletionListCssClass="autocomplete_completionListElement"
    CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem" 
    CompletionListItemCssClass="autocomplete_listItem"
    CompletionSetCount="10" EnableCaching="true" MinimumPrefixLength="2" 
    ServiceMethod="GetCompletionListOggetti"
    ShowOnlyCurrentWordInCompletionListItem="true" UseContextKey="True">
</cc1:AutoCompleteExtender>

Код:

<System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()> _
Public Shared Function GetCompletionListOggetti(ByVal prefixText As String, ByVal count As Integer) As String()
    ' Insert code to return a string array here…
    Return AutoCompleteOggetti(prefixText)
End Function

Проблема в том, что GetCompletionListOggetti никогда не вызывается.

Повторюсь - на контентной странице работает нормально!Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 22 ноября 2011

Вам необходимо установить свойство ServicePath объекта AutoCompleteExtender, чтобы переопределить поведение по умолчанию при обратном вызове страницы загрузки (не главной).

Добавьте свою функцию в код на странице веб-сервиса (.asmx), фиктивной странице или default.aspx и т. Д.

Если вы используете страницу веб-сервиса, вам нужно добавить / раскомментировать строку:

<System.Web.Script.Services.ScriptService()> _

для VB или для C #

[System.Web.Script.Services.ScriptService]
1 голос
/ 26 января 2011

Мне удалось это сделать, поместив веб-метод (в вашем случае, GetCompletionListOggetti) в коде файла содержимого страницы вместо главной страницы.И это работает только для веб-метода в том же коде за файлом, а не в отдельном сервисе asmx.Для этого не забудьте добавить свойство EnablePageMethods = "true" в свой менеджер скриптов.

Кажется, что сервисный метод AutoCompleteExtender никогда не вызывается, когда он определен внутри кода пользовательского (или пользовательского) элемента управления, стоящего за файлом, и главная страница действительно является своего рода элементом управления.

Недостатком этого исправления является то, что вы должны поместить один и тот же метод обслуживания на КАЖДУЮ страницу содержимого, которая использует эту главную страницу.Не очень элегантноДругим недостатком является то, что выпадающий список css с предложениями не работает должным образом.Тем не менее я не мог понять обход.Кто-нибудь получше?

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