无法在LoginView LoggedIn模板中找到控件

时间:2012-08-03 14:21:43

标签: c# asp.net loginview

我试图在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
    }

2 个答案:

答案 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;