webForumDet fria alternativet

Problem med usercontrol och tillbakapostat värde

.NET

4 svar · 299 visningar · startad av Jon

Medlem sedan juli 20011 304 inlägg
Frågan#1

Jag laddar en usercontrol dynamiskt till en placeholder med LoadControl()

När jag sedan klickar på en länk på sidan så laddar jag efter postbacken en annan usercontrol på samma ställe.

Problemet är att jag vill ha tag i ett värde på den "gamla" usercontrolens .Text (en property på den) innan jag laddar den nya men PlaceHolder1.Controls.Count blir 0 efter postback. Viewstaten är påslagen men den "tappar" usercontrol:en ändå?

Är det kanske så att dynamiskt laddade usercontrols dör efter postback?

Kanske flummigt förklarat? Säg till i så fall! :)

Medlem sedan maj 20012 812 inlägg
#2

Problemet är precis som du säger att du kan inte få tag i en dynamisk kontroll efter en postback, och det beror på att den kontroll som man vill binda datan till inte finns.

Så om du skapar dynamiska kontroller på din sida och vill kunna komma åt dessa efter en postback så måste du skapa om de (tror det måste vara innan Page_Load()) så att data kan bindas till dessa.

- Magnus

Medlem sedan juli 20011 304 inlägg
#3

ok. Men vad händer med värdena i kontrollerna? Postas de till sidan eller? Annars är det ju ganska meningslöst om man aldrig kan få tag på den...

Medlem sedan juli 20011 304 inlägg
#4

Ok nu har jag läst lite.

Egentligen vill jag inte ladda min gamla kontroll. Jag kommer ändå att ladda en ny.

Problemet är att jag vill ha tag i ett värde från den gamla kontrollen. Detta värde finns med i Request.Form men jag vet inte riktigt vad det heter.

Det jag hade tänkt från början var att om jag kunde få tillbaka kontrollen så kunde jag läsa av värdet och sen byta ut kontrollen mot den nya som jag vill ladda.

Just nu fokuserar jag på att komma på hur jag ska få ut det postade värdet.

// Tillägg:

Nu är problemet löst. Det handlar som sagt om att kontrollerna förvinner om man lägger till dem dynamsikt. Det har med livscykeln att göra. Man måste själv ordna med viewstate och trixa lite i page_init för att få saker och ting att fungera.

http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=285389 <-- lite hjälp om någon fastnar på samma sak :)

Medlem sedan juli 20011 304 inlägg
#5

Om någon annan fastnar på detta kan jag tillägga något väldigt viktigt:

Se till att kontrollen alltid har samma ID annars kommer inte viewstaten med!

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)