ich habe gerade mit vb.net 2005 eine Webseite programmiert. Alles hat
geklappt. Jetzt habe ich ein Login eingefügt und möchte, dass die Felder nur
angemeldeten Benutzern zur Verfügung stehen. Ich habe alles Felder in das
LoginView kopiert. Leider kann ich nicht mehr auf die Felder zugreifen. Alle
Variablen sind nicht deklariert. Wo muss ich diese deklarieren damit ich
wieder zugreifen kann?
Danke
Du musst sie nicht deklarieren, sie sind nur noch über
den "normalen Kontext" verfügbar. Benutze FindControl:
<asp:LoginView id="LVBla" runat="server">
<AnonymousTemplate>
<asp:Label ID="AnonymousLabel" runat="server" />
</AnonymousTemplate>
</asp:LoginView>
protected void Page_Load(object sender, EventArgs e)
{
Label anonymousLabel = (Label)LVBla.FindControl("AnonymousLabel");
anonymousLabel.Text = DateTime.Now.ToString();
}
Wichtig: du kannst immer nur auf die Controls zugreifen,
die in dem Template stecken, welches gerade verwendet
wird - da immer nur dieses gerendert wird, die anderen
werden jeweils gar nicht erzeugt.
D.h. wenn du eingeloggt bist würde der Zugriff oben
fehlschlagen.
--
Gruß, Thomas [MVP ASP/ASP.NET]
http://www.69grad.de - Beratung, Entwicklung
http://www.dotnetjob.de - .NET-Stellenmarkt
http://blog.thomasbandt.de - Thomas goes .NET
> Du musst sie nicht deklarieren, sie sind nur noch über
> den "normalen Kontext" verfügbar. Benutze FindControl:
Das ist IMO ein Designfehler des Controls, siehe:
- http://www.aspnet-zone.de/forums/thread/196730.aspx
--
Gruss, Peter Bucher
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
http://www.aspnetzone.de/blogs/peterbucher/ - Auf den Spuren von .NET