Hej, Hej Anders, Tack för ditt svar Tiberiu , Om du skapar handlern till knappen och lägger in den tillräckligt tidigt i sidan borde den anropas redan samma runda. Kan tänkas att det blir så om du skapar knappen i Page_Load. Villd u vara senare än Page_Load med för PreRender så finns det flera nya page lifecycle event i ASP.NET 2.0, bl a Page.LoadCompleted (tror den heter så)... Bara lite extra information som kanske hjälper. Kolla på lifecyclen i 2.0 så ska du se att det har skett en hel del ändringar... Har läst igenom några olika beskrivningar av Page Cycle nu..o om jag har förstått nåt :) ...så är problemet följande:hur sätta händelse-hanterare/delegat till runtime-kontroll?
Håller på att göra en hyfsat simpel sak som inte "borde" :) skapa problem, men det bråkar lite:
En liten beskrivning:
Tänkte skapa en "varukorg" , en tabell som uppdateras i runtime.
Till de kontroller jag skapar dynamiskt så tänkte jag koppla en delegat:
im = new ImageButton();
im.Click += new System.Web.UI.ImageClickEventHandler("ImageButton_ClickAdd");
....
protected void ImageButton_ClickAdd(object sender, ImageClickEventArgs e)
{
....
}
Det funkar att "skícka" en händelse om jag initierar delegaten vid Page_Load, dvs klickar jag på imageknappen så anropas metod ImageButton_ClickAdd, om jag skapar imagebutton mm vid Page_Load.
MEN, skulle vilja skapa (imagebutton mm vid en senare skeende, dvs efter Page_Load. Om möjligt vid Page_PreRender, men gör jag det så anropas inte ImageButton_ClickAdd när jag klickar på en imagebutton, är det där för sent att skapa delegaten?
Nån som vet varför man inte då kan skapa en fungerande delegat/händelseaktiverare?Sv: hur sätta händelse-hanterare/delegat till runtime-kontroll?
först, method namnet ska inte vara mellan "". Sen PreRender används enbart som en "sista punkt" att göra ändringar på sidan inan den skickas till klienten, men efter alla medelande hade hanterats. Det du kan göra är att skappa ImageButton i Page_Load, men visa den i Pre_Render.
Mvh,
TibiSv:hur sätta händelse-hanterare/delegat till runtime-kontroll?
Jo citationstecknen är inte med i min riktiga kod , jag som klantade mig lite när jag skrev inlägget =)
Jag kanske har snurrat till det,men har hyffsad koll på "page cycle". Dvs är med på att PreRender anropas efter pageload och händelser.
Men är det svaret på mitt specifika problem? När jag initerar en delgat så anropas väl inte händelsen i samma runda till servern? Borde skicka en ny vända om du är med? Eller har jag snurrat till det?
Kan lägga till lite info:
"Köpknappen" fungerar, dvs om man väljer en produkt och klickar så aktiveras ImageButton1_Click, här fiskar jag upp vilken produkt/antal som är vald. Men denna ju anropas efter Page_Load, först i ImageButton1_Click jag vet hur många imagebutton/produkter jag ska visa i kundvagnen.
Dvs blir väl svårt att skapa imagebutton vid Page_Load i så fall? Skickas väl med i request-objektet info iof? (Vlka id-händelser), men känns lite snurrigt :)
imagebuttons som jag skapar vid runtime är + och minus för att öka minska respektive produkt, i varukorgen. Och det är dessa imagebuttons jag vill koppla till delegater. Kan sätta övriga proporties till imagebuttons vid ImageButton1_Click eller vid Prerender, men inte .Click, troligen pga att delegater ska initeras tidigare.
SKulle kunna "rita upp varukorgen" vid ImageButton1_Click, men prdouktdatalisten har paging, vilket gör att den då inte ritas upp om man väljer postback som inte är aktiverat av
ImageButton1_Click
Sv: hur sätta händelse-hanterare/delegat till runtime-kontroll?
Sv:hur sätta händelse-hanterare/delegat till runtime-kontroll?
ska ju fånga upp händelser från kontroller som är skapade dynamiskt. För att kunna fånga upp en händelse måste man dessförinnan återskapa kontrollern iom att den är dynamisk.
Händelsen i Page cycle som fångar händelsena från de dynamiska kontrollerna inträffar vid RaisePostbackEvent, den ligger mellan Load och LoadComplete . Har inte testat det än men tror man får återskapa kontrollerna senast i RaisePostbackEvent.
Men om nu ImageButton1_Click aktiveras efter RaisePostbackEvent så blir det ändå problem att skapa en "aktuell" varukorg, då ImageButton1_Click anropas när en ny artikel läggs till i varukorgen.
vet inte exakt men får eventuellt kombinera med hidden textruta/javascript eller liknande. Tar gärna emot alternativa/bättre förslag om nån har en ide :)