Laden...

Event im Usercontrol nach PostBack null

Erstellt von opel vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.220 Views
O
opel Themenstarter:in
59 Beiträge seit 2008
vor 13 Jahren
Event im Usercontrol nach PostBack null

Usercontrol (ucAntrag)

public event EventHandler _eventBtn;

protected void Button_Click(object sender, EventArgs e)
{
     _eventBtn(sender, e);
}

ist eingebunden in

Page

protected void Page_Load(object sender, EventArgs e)
{
    ucAntrag._eventBtn += new EventHandler(Button_Click);
}

protected void Button_Click(object sender, EventArgs e)
{
    Button btn = (Button)sender;
}

Ein AutoPostBack eines Controls leert mir immer den _eventBtn. Wie kann ich über PostBacks hinweg den Event ans _eventBtn binden? String-Properties im UserControl halte ich mir ja im ViewState - nur bei Events weiß ich nicht wie ich da vorgehen soll.

B
200 Beiträge seit 2006
vor 13 Jahren

Hallo,

ich würde meinen wenn du in der Page statt Page_Load -> Page_Init verwendest sollte es zum gewünschten Ergebnis führen.

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

da bei jeder Anfrage neue Instanzen der Controls sowie der Page erstellt werden, müssen die Events bei jeder Anfrage neu gebunden werden.
Wenn Du das im Page_Load machst, sollte das aber eigentlich klappen...

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

O
opel Themenstarter:in
59 Beiträge seit 2008
vor 13 Jahren

Mit Page_Init klappt es.
Ich habe mir zwar die Lifecycle mal angeschaut aber könnte jemand versuchen mir zu erklären warum es im Page_Init klappt, im Page_Load nicht.

691 Beiträge seit 2007
vor 13 Jahren

Das hat was mit dem Zeitpunkt zu tun, wann der ViewState wieder hergestellt wird. Vor diesem Zeitpunkt musst du das Control wieder erstellen. ASP.Net geht hin und weißt dann dem neuerstellten Control, sofern es den gleichen Namen hat, die entsprechenden Eigenschaften und ausgelöste Events zu.

Dementsprechend funktioniert es nicht, wenn du das Control zu einem späteren Zeitpunkt erstellt.

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

458 Beiträge seit 2007
vor 13 Jahren

Richtig.

be the hammer, not the nail!