Ich lade einen LinkButton dynamisch, wenn ein Benutzer auf einen anderen LinkButton klickt. Ich füge einen Event-Handler an ihn an. Wenn der Benutzer auf den dynamisch geladenen LinkButton klickt, wird das Ereignis nicht ausgelöst.Dynamisch geladenes Steuerelement - wie kann ich auf einen Wert in Page_Init zugreifen
Von dem, was ich gelesen habe, verstehe ich, ist dies, weil wenn die Seite zurückgibt das dynamisch geladene Steuerelement nicht mehr existiert. Es sieht so aus, als müsste ich sicherstellen, dass dieses Steuerelement in Page_Init neu erstellt wird.
Der dynamisch erstellte LinkButton ist abhängig von einem Wert (Product ID). Ich brauche einen Weg, um auf diesen Wert zuzugreifen, damit ich das Steuerelement richtig erstellen kann. ViewState ist nicht zugänglich und ich bin besorgt, wenn ich Session verwenden könnte, könnte es Zeitüberschreitung und dann würde das nicht helfen. Irgendwelche Ideen?
Außerdem habe ich einen Produkt-ID-Wert nur für Testzwecke fest programmiert, und das Ereignis wurde trotzdem nicht ausgelöst. Gibt es noch etwas, was ich tun muss?
protected void Page_Init(object sender, EventArgs e)
{
SetTabText(1, 1);
}
SetTabText SetActionLinks nennt, die die Linkbutton erstellt:
protected Panel SetActionLinks(int prodID, int tabID) {
...
LinkButton lnkBtn = new LinkButton();
lnkBtn.ID = "lnkBtn" + rand.Next().ToString();
lnkBtn.CommandName = "action";
lnkBtn.Command += new CommandEventHandler(this.lnkAction_Command);
panel.Controls.Add(lnkBtn);
...
}
void lnkAction_Command(object sender, CommandEventArgs e)
{
LinkButton btn = (LinkButton)sender;
switch (btn.CommandArgument)
{
AddCart();
}
}
Ich änderte meine Ereignisse zu anonymen Delegierten, aber es scheint nichts geändert zu haben ... –