2011-10-03 104 views
66

在ContentPage上有一個文本框。當用戶在該文本框中按Enter時,我試圖在此ContentPage上觸發「提交」按鈕。我想解除特定按鈕的事件。如何在某個按鈕上設置默認「輸入」

取而代之的是,在MasterPage的頁面頂部有一個搜索文本框&按鈕,並且此搜索按鈕的事件觸發。

如何控制觸發此ContentPage的提交按鈕,而不是MasterPage的搜索按鈕?

我使用Ektron CMS進行內容管理。

+0

你有沒有在內容頁面面板,也許你可以設置默認按鈕作爲在這種情況下提交 – V4Vendetta

+0

謝謝V4Vendetta,是的,我通過添加一個面板並設置默認按鈕提交 – Ron

回答

81

最簡單的方法是把字段和按鈕面板的內側設置默認按鈕,你想要的按鈕在輸入時被激活。

<asp:Panel ID="p" runat="server" DefaultButton="myButton"> 
    <%-- Text boxes here --%> 
    <asp:Button ID="myButton" runat="server" /> 
</asp:Panel> 
+1

謝謝柯克,完美的解決方案 - 爲我工作得很好! – Ron

+0

請注意,此解決方案依賴於JavaScript,因爲像'onkeypress事件=「JavaScript的:返回WebForm_FireDefaultButton(事件,' ctl00_MainContentPlaceHolder_btnSave ')」>'被添加到您的網頁 –

+0

完美的解決方案 - 由於柯克 – Sensa

14

您可以在服務器端form控件或Panel控件上使用DefaultButton屬性。在你的情況,組對照一起在一個Panel應該斷火同一按鈕:

<asp:Panel ID="SearchBox" runat="server" DefaultButton="BtnSearch"> 
    ... 
    <asp:Button ID="BtnSearch" runat="server" Text="Search!" /> 
</asp:Panel> 
.... 
<asp:Panel ID="UserPanel" runat="server" DefaultButton="BtnUserSubmit"> 
    ... 
    <asp:Button ID="BtnUserSubmit" runat="server" Text="Submit" /> 
</asp:Panel> 
+0

感謝Mellamokb,asp:Panel工作! – Ron

29

,如果你需要從代碼做到這一點,使用

Me.Form.DefaultButton = Me.btn.UniqueID 

哪裏btn是你的按鈕控制。

+0

如果在一個控件中,Me.Page.Form.DefaultButton有效。 – NYCdotNet

3

您現在可以使用UseSubmitBehavior屬性來禁用所有你不想打提交何時啓(檢查出的文檔獲取更多信息)按鈕

<asp:Button ID="BtnNotToFIre" runat="server" Text="Search" UseSubmitBehavior="false" /> 
+1

絕對的明星!這是我需要的! –

+0

它不需要額外的html/asp.net元素,這些元素可能不適用於頁面佈局。 – Walter

相關問題