2011-03-10 20 views
1

我在我的ASP.net表單上有一個文本框和一個按鈕,用於執行搜索。我從AJAX工具包中添加了一個autocomplexxtender,以在用戶輸入時顯示建議。這工作正常,但是我想要發生的是當用戶在顯示的建議列表中選擇一個項目時,該按鈕的Click事件觸發。任何人有任何想法如何做到這一點?如何在單擊項目時獲得AutoCompleteExtender提交

回答

6

由於項目選擇的事件將觸發一個客戶端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(「<%= cmdSearch.ClientID%>」)。click()這是一個完美的解決方案,謝謝。 – 2011-03-11 10:05:51

+0

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

1

設置文本框的AutoPostBack設置爲真。

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

然後創建一個onTextChanged事件處理程序來執行與按鈕相同的操作。或者你可以將它指向相同的事件處理程序你的按鈕有

相關問題