2011-10-03 111 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

相关问题