我试图在LoginView LoggedIn模板中获取LoginName控件,尽管有几种方法,代码仍然无法工作。
我希望将默认用户名更改为客户名称。
以下是代码:
<asp:LoginView ID="LoginView1" runat="server">
<LoggedInTemplate>
Hello, <asp:LoginName ID="LoginName1" runat="server"></asp:LoginName>
<br />
<div style="text-align: right; margin-right: 5px ">
<asp:LoginStatus ID="LoginStatus1" runat="server" LogoutPageUrl="~/Home.aspx" Font-Underline="True" />
</div></div>
</LoggedInTemplate>
</asp:LoginView>
在背后的代码中:
protected void Login1_LoggedIn(object sender, EventArgs e)
{
LoginName loginName = LoginView1.FindControl("LoginName1") as LoginName;
Response.Write(loginName.ToString()); //for now I used Response.Write for testing purposes
}
答案 0 :(得分:4)
试试这个:
<asp:LoginView ID="LoginView1" runat="server">
<LoggedInTemplate>
<asp:Label runat="server" ID="lblUserName" Text="" />
<br />
<div style="text-align: right; margin-right: 5px ">
<asp:LoginStatus ID="LoginStatus1" runat="server" LogoutPageUrl="~/Home.aspx" Font-Underline="True" />
</LoggedInTemplate>
</asp:LoginView>
并在代码背后:
if (!Page.IsPostBack)
if (this.Page.User.Identity.IsAuthenticated)
(this.LoginView1.FindControl("lblUserName") as Label).Text = "Hello, " + this.Page.User.Identity.Name;
答案 1 :(得分:1)
您好,您可以尝试使用此代码
LoginView1.LoggedInTemplate.FindControl("LoginName1") as LoginName;