如何在单击项目时获得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
答
设置文本框的AutoPostBack设置为真。
<asp:TextBox ID="SearchCityBox" CssClass="searchOne" runat="server" Width="500px" Height="18px" AutoPostBack="true" OnTextChanged="SearchCityBox_TextChanged"></asp:TextBox>
然后创建一个onTextChanged事件处理程序来执行与按钮相同的操作。或者你可以将它指向相同的事件处理程序你的按钮有
没有安装jquery我去了老学校,并做了这个document.getElementById(“”)。click()这是一个完美的解决方案,谢谢。 – 2011-03-11 10:05:51
@MartinBrown,$ get()来自M $ Ajax库而不是JQuery – Sam 2011-08-26 13:06:00