Avatar billede carpediem Nybegynder
28. maj 2004 - 16:21 Der er 4 kommentarer og
1 løsning

Skifte fra en usercontrol til en anden

Hejsa

Jeg kan ikke lige regne ud hvordan jeg skal gøre det her.
På min defaultside har jeg en Placeholder. Når siden loades fylder jeg placeholderen med en usercontrol (login.ascx).
Men når man så logger ind via login.ascx, vil jeg jo gerne have, at den skal forsvinde fra min placeholder og udskiftes med en ny usercontrol. Hvordan gør jeg det?

Lidt kode:
Default.aspx:
<td valign="middle">
  <asp:PlaceHolder ID="plLogin" Runat="server"></asp:PlaceHolder>
</td>
Default.aspx.vb:
Dim c1 As UserControl
c1 = LoadControl("Login.ascx")
plLogin.Controls.Add(c1)

Login.ascx.vb:
'Tjek i database om bruger findes
If UserExists(txtBrugernavn.Text, txtPassword.Text) = True Then
  'Her vil jeg gerne lave noget ala
  MinParent.plLogin.Controls.Add("LoggedIn.ascx")
Else
  'Udskriv fejl
End If
Avatar billede nielsbrinch Nybegynder
28. maj 2004 - 17:39 #1
n1 = LoadControl("NyUsercontrol.ascx")
plLogin.Controls.Remove(c1)
plLogin.Controls.Add(n1)
Avatar billede carpediem Nybegynder
29. maj 2004 - 10:56 #2
Men min plLogin er jo defineret i min default.aspx, så den kan jeg vel ikke kalde fra min login.ascx.vb
Avatar billede nielsbrinch Nybegynder
29. maj 2004 - 11:08 #3
Der er mange muligheder for at komponenterne kan kommunikere med hinanden. Én måde er simpelt hen at skabe en reference mellem dem. I dig Login.ascx.vb laver du en metode som tager en Default-klasse (altså den klasse som gemmer sig bare Default.aspx) og så sætter du referencen når du loader din login user control.

Jeg kan desværre ikke give dig kodeeksempel, da jeg ikke kender VB særligt godt.

En anden mulighed er at sætte en Session-variabel der definerer hvad der skal vises, og så tjekke på den hver gang Default.aspx loader.
Avatar billede thrytter Nybegynder
31. maj 2004 - 19:34 #4
Hvis du i din default.aspx.vb har defineret en Property, kan denne tilgås fra login-UserControllen ved eks.

Me.Parent.GetType.Property("_PropertyName_").SetValue(Me.Parent, _PropertyValue_, Nothing)

Alternativt kan du lade default.aspx.vb styre hvilken UserControl der skal vises.
Avatar billede carpediem Nybegynder
06. december 2006 - 22:07 #5
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester