Forum > ASP.NET 3.x > Generella frågor
Jag har en usercontrol som jag laddar in i en placeholder via ett script (VB på servern).
Mitt problem är att usercontrolen försvinner vid en postbacksituation. Jag förstår att den gör det (tror jag :-) ) men hur kan jag göra för att den ska vara kvar tills jag manuellt tar bort via ett script.
Jag hittar inga parametrar och kan just nu inte komma på nåt vettigt script för att hålla min usercontrol vid liv.
Någon som vet?
Jag tror jag förstår ditt problem rätt, detta kan man lösa genom !IsPostBack
Sub Page_Load
If Not IsPostBack
// UserControl Add here
End If
End Sub
Exempel från Msdn
Men då försvinner den väl ändå vid en postback?
Finns det inget typ: Keep.MyUsercontrol.Alive.Until.I.Kill.It
Jag tror att jag trasslat in mig i mitt tänk. Jag får väl skicka med usercontrolen med aspx-sidan och dölja den tills den behövs.
finns det inte visible property i din usercontrol? Annars är det bara att lägga en wrapper med runat="server" och köra det visible= false på den när du inte vill att den skall visas.
Jo jag är inne på att göra som du säger, det funkar bra. Fast jag hade tänkt mig att snabba upp sidan genom att bara hämta usercontrollen när den behövdes.
Så här hade jag skrivit
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myControl1 As MinCtrl= CType(LoadControl("../Controls/filen.ascx"), MinCtrl)
PlaceHolder1.Controls.Add(myControl1)
Problemet uppstår vid en postback. Då är det ju så att säga tomt i PlaceHolder1-tagen och controlen och ingen usercontrol läses in.
Kanske har jag gjort nåt fel men det mest troliga är att jag helt enkelt krånglat till det för mig i mitt tänk med alla script och databashämtningar som ska göras och köras. Nån som känner igen sig? ;-)
Vad jag vet så skall det inte vara några större belastning/långsammare att köra det på det sätt jag beskrev, då skriptet måste ändå generera upp all kod innan den skickas, om du har satt visible false så kommer .NET inte försöka generera koden, samma sak gäller en If fråga, om du träffar if frågan så körs aldrig else frågan.
Aha!! Menar du att inget hämtas eller körs om man sätter visible=false? Hämtas inte heller t ex bilder som ligger i en sådan "dold" kontroll?
Om man sätter style visiblity hidden i html så hämtas väl innehållet till klienten men visas inte. Men det är alltså inte likadant med med asp kontroll?
Det där hade jag helt missat
asp.net != HTML om du visa källkoden så ser du att objekten inte ens skrivs ut om du kör objekt styrd visible.
Tänk det där hade jag aldrig fattat. Så mycket enklare mitt liv blir nu :-)
Tack!