1

我的 ASP.net 表单上有一个文本框和一个按钮,用于执行搜索。我从 AJAX 工具包中添加了一个自动完成扩展器,以在用户键入时显示建议。这工作正常,但是我想要发生的是当用户在显示的建议列表中选择一个项目时触发按钮的 Click 事件。任何人都知道如何做到这一点?

4

3 回答 3

6

由于 item selected 事件将触发客户端 JavaScript 事件,因此我通常将以下代码添加到我的 OnClientItemSelected 事件方法中:

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

您需要相应地找到按钮的正确名称并将其替换为上面。

作为一项附加功能,有时我希望能够在自动完成中输入一个值,如果我知道我想要什么,就立即按下回车键。为此,您需要将 AutoComplete 文本框和按钮包装在面板中,并相应地设置默认按钮:

<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
于 2011-03-10T22:25:08.127 回答
1

将文本框的 Autopostback 设置为 true。

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

然后创建一个 onTextChanged 事件处理程序来执行与您的按钮相同的操作。或者您可以将其指向您的按钮具有的同一个事件处理程序

于 2012-06-11T05:52:22.383 回答
0

看看onclientitemselected

这里有一些信息: 使用 AutoCompleteExtender 控件实现自动建议

于 2011-03-10T22:08:18.653 回答