我正在使用asp.net LoginView向经过身份验证的用户或匿名用户显示不同的数据。
<asp:LoginView ID="LoginView1" Runat="server">
<LoggedInTemplate>
<asp:Label ID="Foo" runat="server" />
</LoggedInTemplate>
<AnonymousTemplate>
<asp:Label ID="Bar" runat="server" />
</AnonymousTemplate>
</asp:LoginView>
当我将Foo
和Bar
移到LoginView1
时,我无法以这种方式从后面的代码中访问它们:
Foo.Text = "I am Foo";
Bar.Text = "I am Bar";
在将它们移动到LoginView之前,我能够以这种方式访问它们。我可以使用什么(干净)方法来访问这些标签?
答案 0 :(得分:4)
您需要在LoginView上使用FindControl,并按适当的方式进行Cast,如下所示:
var foo = (Label)LoginView1.FindControl("Foo");
foo.Text = "I am Foo";