Asp.net 单击项目时,如何让AutoCompleteXtender提交

Asp.net 单击项目时,如何让AutoCompleteXtender提交,asp.net,asp.net-ajax,autocomplete,autocompleteextender,Asp.net,Asp.net Ajax,Autocomplete,Autocompleteextender,我的ASP.net表单上有一个文本框和一个按钮,用于执行搜索。我从AJAX工具包中添加了一个AutoCompleteXtender,用于在用户键入时显示建议。这很好,但是我想发生的是,当用户在显示的建议列表中选择一个项目时,触发按钮的单击事件。有人知道怎么做吗?看看OnClient Selected 这里有一些信息: 查看选定的客户端 这里有一些信息: 由于item selected事件将触发客户端JavaScript事件,我通常会将以下代码添加到OnClient selected事件方法中:

我的ASP.net表单上有一个文本框和一个按钮,用于执行搜索。我从AJAX工具包中添加了一个AutoCompleteXtender,用于在用户键入时显示建议。这很好,但是我想发生的是,当用户在显示的建议列表中选择一个项目时,触发按钮的单击事件。有人知道怎么做吗?

看看OnClient Selected

这里有一些信息:

查看选定的客户端

这里有一些信息:

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

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

函数YourMethodHere(源、事件参数)
{
$get('ctl00_body占位符_btnAutoSubmit')。单击();
}
您需要相应地找到按钮的正确名称,并在上面替换它

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

<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

搜索:

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

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

函数YourMethodHere(源、事件参数)
{
$get('ctl00_body占位符_btnAutoSubmit')。单击();
}
您需要相应地找到按钮的正确名称,并在上面替换它

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

<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

搜索:

将文本框的Autopostback设置为true

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


然后创建一个ContextChanged事件处理程序,以执行与按钮相同的操作。或者,您可以将其指向按钮所具有的相同事件处理程序,将文本框的Autopostback设置为true

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


然后创建一个ContextChanged事件处理程序,以执行与按钮相同的操作。或者,您可以将它指向您按钮上的同一个事件处理程序,该事件处理程序没有安装jquery,我是老派人士,编写了此文档。getElementById(“”)。click()但是,这是一个完美的解决方案,谢谢。@MartinBrown,$get()是来自M$Ajax库而不是jquery没有安装jquery我上了老派学校,编写了这个文档。getElementById(“”)。click()但是这是一个完美的解决方案,谢谢。@MartinBrown,$get()来自M$Ajax库而不是jquery