【发布时间】:2015-08-18 23:00:17
【问题描述】:
在我的 Web 应用程序中,我有一个母版页,我想在用户按 Enter 时为登录页实现默认按钮(我的应用程序有母版页)我如何放置默认按钮。
【问题讨论】:
标签: asp.net
在我的 Web 应用程序中,我有一个母版页,我想在用户按 Enter 时为登录页实现默认按钮(我的应用程序有母版页)我如何放置默认按钮。
【问题讨论】:
标签: asp.net
Page.Form.DefaultButton = crtlLoginUserLogin.FindControl("LoginButton").UniqueID
或者只是
Page.Form.DefaultButton = LoginButton.UniqueID
这会起作用。
【讨论】:
如果您想在母版页中设置默认按钮,并且该按钮位于内容页或用户控件中,则不能直接在母版页标记中进行设置。
<form id="form1" runat="server" defaultbutton="MyButton" >
会产生如下错误:
'form1' 的 DefaultButton 必须是 IButtonControl 类型的控件的 ID。
解决方法是在内容/用户控件的 Page_Load 期间设置默认按钮:
protected void Page_Load(object sender, EventArgs e)
{
Button myButton = (Button)FindControl("MyButton");
Page.Form.DefaultButton = myButton.UniqueID;
}
【讨论】:
这个的VB版本如下:
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
'cast the master page form to set the default values for the Default button and Default focus'
Dim myForm As HtmlForm = TryCast(Me.Master.FindControl("myMasterForm"), HtmlForm)
myForm.DefaultButton = Me.btnAdd.UniqueID
myForm.DefaultFocus = Me.txtMyTextbox.UniqueID
End Sub
【讨论】:
与母版页无关 - 在这里查看 Web 浏览器如何解释表单。
http://geekswithblogs.net/ranganh/archive/2006/04/12/74951.aspx
我个人会将表单包含在它自己的面板控件中,并将默认按钮属性设置为提交按钮的属性。
注意:这仅适用于 ASP.NET 2.0 及更高版本。
【讨论】:
恕我直言,有一个为登录而设计的内置控件,称为LoginView。 它集成到您的母版页或任何其他页面中,可以充分利用身份验证系统。这是它的代码
<asp:LoginView ID="LoginView1" runat="server">
</asp:LoginView>
Asp.Net 为应用程序的身份验证和授权提供了一个完整的框架。如果您即将为您的应用程序实施一个并且您尚未将其作为选项进行审查,我建议您查看一下。
编辑:如果您希望将按钮放置在母版页上,请像我们对普通 Web 表单所做的那样拖放按钮并实现以下事件:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("MyApplication/SomePage.aspx");
}
希望对你有帮助
【讨论】:
(Page.Master.FindControl("Form1") as HtmlForm).DefaultButton = this.cmdSubmit.UniqueID;
来自http://www.dotnetthoughts.net/2010/06/21/asp-net-default-button-and-master-pages/
【讨论】: