asp.net(母版页)中的默认按钮?

时间:2010-02-06 11:31:05

标签: asp.net

在我的网络应用程序中,我有一个母版页,我想在用户按下回车键时为登录页面实现默认按钮(我的应用程序有母版页面)如何放置默认按钮。

6 个答案:

答案 0 :(得分:17)

Page.Form.DefaultButton = crtlLoginUserLogin.FindControl("LoginButton").UniqueID

或只是

Page.Form.DefaultButton = LoginButton.UniqueID

这样可行。

答案 1 :(得分:3)

如果要在母版页中设置默认按钮,并且该按钮位于内容页面或用户控件中,则无法直接在母版页标记中设置该按钮。

<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;
        }

答案 2 :(得分:1)

与母版页无关 - 请查看Web浏览器如何解释表格。

http://geekswithblogs.net/ranganh/archive/2006/04/12/74951.aspx

我个人将表单放在自己的Panel控件中,并将defaultbutton属性设置为提交按钮的属性。

注意:这仅适用于ASP.NET 2.0及更高版本。

答案 3 :(得分:1)

恕我直言,有一个专为登录设计的BuiltIn Control,名为LoginView。 它集成到您​​的主页面或任何其他页面,并可以充分利用身份验证系统。这是它的代码

<asp:LoginView ID="LoginView1" runat="server">
</asp:LoginView>

Asp.Net为应用程序的身份验证和授权提供了完整的框架。我建议看一下你是否准备为你的应用程序实现一个,你还没有将它作为选项进行审查。

编辑:如果您希望将按钮放在母版页上,请按照我们针对普通网页的方式拖放按钮并实施以下事件:

protected void Button1_Click(object sender, EventArgs e)
    {
      Response.Redirect("MyApplication/SomePage.aspx");
    }

希望它有助于

答案 4 :(得分:1)

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

答案 5 :(得分:0)

(Page.Master.FindControl("Form1") as HtmlForm).DefaultButton = this.cmdSubmit.UniqueID;

来自http://www.dotnetthoughts.net/2010/06/21/asp-net-default-button-and-master-pages/