如何在单击项目时提交AutoCompleteExtender

时间:2011-03-10 21:59:31

标签: asp.net asp.net-ajax autocomplete autocompleteextender

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

3 个答案:

答案 0 :(得分:6)

由于项目选择事件将触发客户端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

答案 1 :(得分:1)

将文本框的Autopostback设置为true。

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

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

答案 2 :(得分:0)

查看onclientitemselected

这里有一些信息: Implementing Auto-Suggest Using AutoCompleteExtender Control