jag har en repeater, som jag fyller med dynamiskt skapade kontroller,
och jag skapar dem i Page_Load. Men jag börjar fundera..
Det verkar som om alla dynamiska kontroller måste skapas varje gång en sida laddas och även när det sker en postback?, är det korrekt?.
Men då undrar jag om det kanske inte är bättre att skapa de dynamiska kontrollerna
i Page_Init istället , gör det nån skillnad eller nåt, eller vad säger ni?. jag vet ej.
Tex om jag har en dynamisk textbox i en repeater.
då måste jag skapa om den varje gång det sker en postback.
annars försvinner den, finns det nåt annat sätt att behålla
den förutom att skapa om den hela tiden. ska man istället lägga den i Page_Init?
Det finns ju
Page_Init
Page_Load
Page_PreRender
Page_Render
Page_Unload
Det spelar ingen roll var du lägger den, eftersom alla controller alltid måste skapas om varje gång din sida laddas. Och det beror på att en websida inte har någon status.
Alltså det är en fire-and-forgett lösning. Så fort sidan är skapad och skickad från servern, så försvinner den från minnet (i teorin) och du måste alltså skapa om kontrollerna vid nästa besök på sidan.
Så oberoende vilken av dina methoder så måste kontrollen skapas om vid en postback. Speciellt om den ligger i en repeater. Eftersom det då inte är du som skapar kontrollen utan .NET som skapar den programatiskt till dig.
1. har skapat en textbox dynamiskt.
2. har skapat en onclick händelsehanterare på en Button.
3. ska jag "vid klick" återskapa TextBoxen i samma händelsefunktion?
Jag kan inte se varför du vill skapa en textbox dynamiskt i en repeater.
Jag hade haft med mig textboxen i min repeatermall, och istället låtit bli att skriva ut den, på de ställen du inte vill ha en textbox. Istället för att skapa den dynamiskt på de ställen du vill ha den.
...där du alltså skickar in en parameter xyz (exempelvis ett id) i funktionen myFunction som du sedan använder för att returnera en collection som du fyller din dropdownlist med. Det går dock snabbare att binda dina data i repeaterns ItemDataBound, typ nåt i den här stilen:
Alternativt om du använder vs.net, då markerar du din repeater, väljer "events" i propertiesfönstret... där hittar du bland annat ItemDataBound. Skriv ett valfritt namn för funktionen i textrutan till höger om ItemDataBound och tryck return så skapas funktionen automatiskt åt dig (och den startas då från InitializeComponent() istället för att sättas i asp.net-koden).
267 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e