如何在单击项目时获得AutoCompleteExtender提交

问题描述:

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

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

没有安装jquery我去了老学校,并做了这个document.getElementById(“”)。click()这是一个完美的解决方案,谢谢。 – 2011-03-11 10:05:51

+0

@MartinBrown,$ get()来自M $ Ajax库而不是JQuery – Sam 2011-08-26 13:06:00

看一看onclientitemselected

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

设置文本框的AutoPostBack设置为真。

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

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