我创建了一个用户控件,其中包含一个asp:login控件。我无法设置LoginUser.LoginButtonText等属性。当我通过调试器运行网站时,执行该行并且不会抛出任何错误。我可以将鼠标悬停在调试器中的LoginButtonText上,并将值设置为新值。但是,当控件完成加载时,文本将使用原始文本进行渲染。
(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>
答案 0 :(得分:0)
您必须使用FindControl
控件的Login
方法首先获取对登录按钮的引用,然后设置它的Text
属性,这是如何做到的:
Button btnLogin = (Button)LoginUser.FindControl("LoginButton");
btnLogin.Text = "Test Button";