Toon posts:

[vb.net] Laden/postback van UserControls werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een formulier met een placeholder. Bij het openen van de pagina wordt dynamisch een UserControl geladen in deze placeholder.

Dit UserControl moet gepostback kunnen worden. Dus na het submitten moet de UserControl weer zichtbaar zijn. Dit krijg ik wel voor elkaar!

Maar ik heb buiten de Placeholder een aantal LinkButtons staan die andere UserControls moeten laden als er op geklikt wordt... en dat lukt me dus niet!

Ik gebruik de volgende code bij de PageLoad:
code:
1
2
3
4
5
6
7
8
9
Public Shared strPaginaActief As String 

....

If Not Page.IsPostBack Then
      strPaginaActief = "KlantEigenschappen.ascx"
End If

plhPagina.Controls.Add(LoadControl("usercontrols/" & strPaginaActief))

Het submitten van de userControl werkt gewoon omdat de variable strPaginaActief gewoon bij houdt dat de huidige pagina actief is.

Maar nu wil ik via een linkbutton dus een andere control laden..., dat lukt niet door de strPaginaActief te wijzigen... want die wijziging treed in feite pas op nadat de pageload is voltooid...

Hoe krijg ik dit dan voor elkaar?

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:13
Dynamisch controls toevoegen doe je niet in de Load event van de Page maar in de Init dacht ik zo.... ASP.NET is al een tijdje geleden, maar ik dacht toch dat het in de Init moest...

https://fgheysels.github.io/


Verwijderd

Topicstarter
Maar wat betreft mijn probleem, het maakt toch niet uit waar ik de code plaats. Deze wordt zowiezo eerder uitgevoerd dan de code van mijn button....

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:11

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op zondag 16 januari 2005 @ 21:26:
Maar wat betreft mijn probleem, het maakt toch niet uit waar ik de code plaats. Deze wordt zowiezo eerder uitgevoerd dan de code van mijn button....
Dat maakt wel degelijk uit, want je gooit met een beetje pech je complete (volgorde van) controlcollection overhoop, waardoor je viewstate niet meer klopt.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • LoekD
  • Registratie: Augustus 2000
  • Laatst online: 11-05 17:04
Als je controls dynamisch wilt toevoegen, en daarvan events wilt ontvangen moet je ze altijd laden, niet alleen de eerste keer (dus if not postback weghalen).

Hoe meer je drinkt, hoe korter je leeft, hoe minder je drinkt


  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Als je, afhankelijk van welke button je klikt, dynamisch een usercontrol wilt inladen kun je beter alle mogelijke usercontrols laden in de Init / CreateChildControls event en ze ook allemaal toevoegen aan de PlaceHolder. Daarbij zet je al de dynamische usercontrols op Visible=False behalve van de usercontrol die op dat moment zichtbaar is.

Welke usercontrol zichtbaar is, sla je op in de ViewState van de control, en dus niet als Shared variable. Shared variabelen (static in c#) zijn namelijk globaal over de gehele applicatie en dat is waarschijnlijk niet wat je wilt hebben.
Pagina: 1