Как вы получаете AutoCompleteExtender для отправки при нажатии элемента - PullRequest
1 голос
/ 11 марта 2011

У меня есть текстовое поле и кнопка в моей форме ASP.net для выполнения поиска. Я добавил autocompleteextender из инструментария AJAX, чтобы показывать предложения, пока пользователь печатает. Это работает нормально, однако я хочу, чтобы событие Click кнопки срабатывало, когда пользователь выбирает элемент в отображаемом списке предложений. Кто-нибудь есть идеи, как это сделать?

Ответы [ 3 ]

6 голосов
/ 11 марта 2011

Поскольку событие выбранного элемента будет запускать событие JavaScript на стороне клиента, я обычно добавляю следующий код в мой метод события OnClientItemSelected:

<script type="text/javascript" language="javascript">
   function YourMethodHere(source, eventArgs)
   {
      $get('ctl00_BodyPlaceHolder_btnAutoSubmit').click();
   }
</script>

Вам необходимо найти правильное название вашей кнопки и заменить его выше.

В качестве дополнительной функции, иногда я хочу иметь возможность ввести значение в автозаполнение и сразу же нажать клавишу ввода, если я знаю, чего хочу. Для этого вам понадобится обернуть текстовое поле и кнопку «Автозаполнение» на панели и установить соответствующую кнопку по умолчанию:

<asp:Panel ID="pnlAutoCompleteStuff" runat="server" DefaultButton="btnAutoSubmit">
   Search: <asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
           <cc1:AutoCompleteExtender ID="aceSearch" runat="server"
                                      TargetControlID="txtSearch"                             
                                      ServiceMethod="YourMethodHere"                   
                                      ServicePath="YourServicePath"                                   
                                      MinimumPrefixLength="4"
                                      CompletionInterval="500"
                                      EnableCaching="False"
                                      OnClientItemSelected="AutoCompleteClientMethod"
                                      CompletionSetCount="3">
            </cc1:AutoCompleteExtender>
   <asp:Button ID="btnAutoSubmit" runat="server" Text="Select" />
</asp:Panel
1 голос
/ 11 июня 2012

Установите для Autopostback текстового поля значение true.

<asp:TextBox ID="SearchCityBox" CssClass="searchOne" runat="server" Width="500px" Height="18px" AutoPostBack="true" OnTextChanged="SearchCityBox_TextChanged"></asp:TextBox>

Затем создайте обработчик события onTextChanged, чтобы сделать то же самое, что и кнопка.Или вы можете просто указать на тот же обработчик событий, который есть у вашей кнопки

0 голосов
/ 11 марта 2011
...