Ich werde mein Problem auf einfache Weise beschreiben, so ist es nicht genau das, was ich versuche, aber die Idee ist die gleiche.Hier ist das Problem:
Ich erstelle dynamische Tasten aus dem Code hinter .Ich bekomme eine ID aus der Abfragezeichenfolge, erstelle eine Schaltfläche mit dieser ID, dynamisches Ereignishandler hinzufügen, um auf ein Ereignis zu klicken, und füge eine Schaltfläche zu einem Platzhalter hinzu. Ich speichere die Liste der IDs in der Sitzung und erstelle diese Schaltflächen und füge sie hinzu placeholder.One der id-s ist CurrentID und es ist auch in session.Buttons klicken Handler etwas tun, wie diese LastButton click Event-Handler vor dem Laden der Seite
Button b=(Button)sender;
Session["CurrentId"]=Convert.ToInt32(b.ID);
in Seite gespeichert, wenn ich Schaltflächen erstellen ich von anderen Schaltfläche Texteigenschaft unterschiedlich festlegen möchten s wenn id==Convert.ToInt32(Session["CurrentId"])
wenn Liste der ID-s aus der Sitzung abgerufen werden. Problem ist, dass Click-Ereignishandler nach dem Laden der Seite aufgerufen wird, und wenn ich Schaltflächen beim Laden der Seite erstellen, wurde CurrentId in der Sitzung nicht von Click Event Handler.Can geknüpft Sie schlagen eine Lösung für diese Situation vor?
Danke, PreRender ist die Lösung. – unknown
@unknown: Stellen Sie sicher, dass Sie den ASP.Net-Seitenlebenszyklus richtig lernen, es ist ein unschätzbares Wissen für diese Art von Problemen. Verwenden Sie den Akronym "SILVER", um sich die Etappen leicht zu merken. Sie können darüber lesen: http://www.codeproject.com/KB/aspnet/ASPNET_Page_Lifecycle.aspx –