Toon posts:

[C#] Eventhandler wordt niet gepakt?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb in de designer in visual studio een asp button geplaatst. Wanneer hier op wordt geklikt wordt de method "butSubmit_Click" aangeroepen. In deze method maak ik een een button aan in C# code.
Als ik vervolgens op de website op de in C# gecodeerde button klik "refreshed" de pagina wel, dus waarschijnlijk een postback, echter er lijkt niks gebeurd te zijn. "Hij doet het" is ook niet in de "literalTest" getoond.

Doe ik in de bovenstaande code iets fout? En hoe kan ik zie wat hij wél aanroept? Via de debugger kon ik niets achterhalen...

[code=C#]
protected void butEmail_Click(object sender, EventArgs e)
{
LiteralTest.Text = "Hij doet het";
}

protected void butSubmit_Click(object sender, EventArgs e)
{
Button btn = new Button();
btn.ID = "butEmail";
btn.Click += new EventHandler(butEmail_Click);
btn.Text = "Email mij";
PlaceHolder1.Controls.Add(btn);
}
[/code=C#]

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:24

gorgi_19

Kruimeltjes zijn weer op :9

EventWireUp aanzetten in je .aspx pagina.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

Volgens mij voeg je die control te laat aan je pagina toe en volgens mij bestaat hij niet meer als je weer een postback gaat doen. Misschien beter om hem wel alvast toe tevoegen maar onzichtbaar te maken?

Skill is when luck becomes a habit.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:24

gorgi_19

Kruimeltjes zijn weer op :9

eek schreef op woensdag 21 maart 2007 @ 18:05:
Volgens mij voeg je die control te laat aan je pagina toe en volgens mij bestaat hij niet meer als je weer een postback gaat doen. Misschien beter om hem wel alvast toe tevoegen maar onzichtbaar te maken?
Ow die controls :P die zijn inderdaad te laat :P

Als je controls toevoegd moet je ze bij iedere postback toevoegen, voordat de postback-handlers gefired worden :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 27-11 14:05

giMoz

iets met meester...

waarom je control aanmaken op je click? en niet gewoon altijd daar laten zijn maar visible maken bij click?

Of niet natuurlijk...


Verwijderd

Topicstarter
uhmm... de button wordt gewoon netjes op het scherm getoond na de eerste submit van een formulier. Alleen als je dan vervolgens op de email button klikt dan wordt "protected void butEmail_Click(object sender, EventArgs e)" niet aangeroepen.

Dat heeft niets te maken met te laat toegevoegd dan toch? of wel?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:24

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op donderdag 22 maart 2007 @ 08:51:
uhmm... de button wordt gewoon netjes op het scherm getoond na de eerste submit van een formulier. Alleen als je dan vervolgens op de email button klikt dan wordt "protected void butEmail_Click(object sender, EventArgs e)" niet aangeroepen.

Dat heeft niets te maken met te laat toegevoegd dan toch? of wel?
Ja, want bij de postback wordt de control niet toegevoegd. Dynamische controls betekent dat je zelf verantwoordelijk bent voor je control collection.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 30-11 00:17
Volgens mij kun je ze alleen voor of in de Page_Load toevoegen anders worden de eventhandlers niet geregistreerd. Boverndien zat er ook nog een catch in de volgorde van acties ( eerst eventhandlers en dan aan controlcollection toevoegen of net andersom )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:24

gorgi_19

Kruimeltjes zijn weer op :9

farlane schreef op donderdag 22 maart 2007 @ 10:23:
Volgens mij kun je ze alleen voor of in de Page_Load toevoegen anders worden de eventhandlers niet geregistreerd. Boverndien zat er ook nog een catch in de volgorde van acties ( eerst eventhandlers en dan aan controlcollection toevoegen of net andersom )
Dat maakt niet uit aangezien je met references werkt. Het moment is het belangrijkste, evenals dat je het bij iedere request doet.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 30-11 00:17
gorgi_19 schreef op donderdag 22 maart 2007 @ 10:56:
Dat maakt niet uit aangezien je met references werkt.
Had niet met eventhandlers te maken maar met viewstate:
But wait a minute, if you add a child control via the Controls.Add() method, the added child control's TrackViewState() method is automatically called. But wait! Only those items added to the view state after the view state has started being tracked will be recorded. So binding the items to the DropDownList prior to adding the DropDownList to the Controls collection causes those additions to not be saved in the view state for the DropDownList. Rather, we need to first add the DropDownList to the Controls collection and then bind the database data to the list.
Bron:
http://scottonwriting.net/sowblog/posts/2129.aspx

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1