ASP.NET Login control properties not working
I have created a user control that has an asp:login control in it. I cannot set the properties like LoginUser.LoginButtonText. When I run the web site thru the debugger, the line is executed and no error is thrown. I can hover over the LoginButtonText in the debugger and the value is set to the new value. However, when the control finishes loading the text is the rendered with the original text.
(From WebUserControl1.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace test
{
public partial class WebUserControl1 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
LoginUser.LoginButtonText = "开发者_如何学运维Test Button";
}
}
}
(From WebUserControl1.ascx)
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="test.WebUserControl1" %>
<asp:Login ID="LoginUser" runat="server" EnableViewState="false"
RenderOuterTable="false" onauthenticate="LoginUser_Authenticate">
<LayoutTemplate>
<span class="failureNotification">
<asp:Label ID="FailureText" runat="server"></asp:Label>
</span>
<asp:ValidationSummary ID="LoginUserValidationSummary" runat="server" CssClass="failureNotification"
ValidationGroup="LoginUserValidationGroup"/>
<div class="accountInfo">
<fieldset class="login">
<p>
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Username:</asp:Label>
<asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required."
ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<p>
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
<asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
CssClass="failureNotification" ErrorMessage="Password is required." ToolTip="Password is required."
ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<p>
<asp:CheckBox ID="RememberMe" runat="server"/>
<asp:Label ID="RememberMeLabel" runat="server" AssociatedControlID="RememberMe" CssClass="inline">Keep me logged in</asp:Label>
</p>
</fieldset>
<p class="submitButton">
<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" ValidationGroup="LoginUserValidationGroup"/>
</p>
</div>
</LayoutTemplate>
</asp:Login>
You have to use FindControl
method of Login
control to first get the reference to the login button and then set it's Text
property, this is how this can be done:
Button btnLogin = (Button)LoginUser.FindControl("LoginButton");
btnLogin.Text = "Test Button";
精彩评论