【问题标题】:How to handle two different forms in an asp.net web page?如何处理asp.net网页中的两种不同形式?
【发布时间】:2014-10-25 13:12:34
【问题描述】:

我在我的 asp.net 网站上有一个登录页面(使用 C#),它有一个“登录表单”,其中包含一个电子邮件文本框、一个密码文本框和一个登录按钮。

此外,我在网页顶部有一个“搜索表单”,其中有一个搜索文本框和一个搜索按钮。

*由于 asp.net 对一个 runat="server" 表单的限制,所有控件都采用相同的表单。

问题是,当我键入要搜索的内容并单击 ENTER(而不是直接单击按钮)时,它什么也不做,只会再次运行 Page_Load。当我在登录部分而不是直接在登录按钮上单击 ENTER 时也是如此。

我尝试了不同的解决方案,但由于两种“表单”的功能不同,它们都存在问题。

我不知道如何解决这个问题,有什么建议吗?

【问题讨论】:

    标签: c# asp.net forms login


    【解决方案1】:

    我的网络表单有点生疏,但我认为是这样的:

    <asp:Panel ID="loginPanel" runat="server" DefaultButton="loginButton">
    <%-- Login Stuff--%>
    <asp:Button ID="loginButton" runat="server" />
    </asp:Panel>
    
    
    <asp:Panel ID="loginPanel" runat="server" DefaultButton="searchButton">
    <%-- Search Stuff --%>
    <asp:Button ID="searchButton" runat="server" />
    </asp:Panel>
    

    应该工作

    【讨论】:

    • 是的,应该这样做。您还可以使用ValidationGroup 属性来触发特定的验证控件(或不触发),具体取决于单击的按钮。
    • 那行得通 :) 为简单起见,我将搜索转换为普通 html,但这解决了 ENTER 问题。这是更改网页默认按钮的唯一方法吗?
    • 在网络表单中,我认为默认按钮是唯一的方法。在 mvc 或 vanilla html 中,您可以使用多种形式。
    【解决方案2】:

    aspx 页面上只有一个带有runat='server' 的表单。所以,如果你真的需要另一种形式,你可以在不使用runat='server' 的情况下使用它并用于搜索jQuery ajax 调用。

    【讨论】:

      猜你喜欢
      • 2017-06-21
      • 2020-11-13
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 2022-10-13
      • 2016-10-15
      • 1970-01-01
      • 2014-12-01
      相关资源
      最近更新 更多