[c#/asp.net] probleem met volgorde afhandelen events

Pagina: 1
Acties:

  • shades
  • Registratie: September 2001
  • Laatst online: 19-05 08:57
Ik ben bezig met een webform waarop ik dynamisch imagebuttons zet en daaran een even koppel. Dat doe ik via:

code:
1
2
3
4
5
6
img = new ImageButton();
img.ImageUrl = "../Images/opties/delete.gif";
img.AlternateText = strOptie + " verwijderen..";
img.CommandName = "Verwijderen";
img.CommandArgument = intOptieId.ToString();
img.Command += new CommandEventHandler(myFunction);


myFunction pikt dan de events op
code:
1
2
3
4
void myFunction(object sender, CommandEventArgs e)
{
    // code
}


Deze event wordt prima aangeroepen tijdens de postback alleen vind deze plaat NA de Page_Load() :?

Is er een manier om dit goed te krijgen met een override. De myFunction doet namelijk iets wat de uitvoer van de Page_Load aanpast. Na een refresh is van de pagina klopt het wel maar dan wordt de postback als het ware weer uitgevoerd en dat is niet de bedoeling natuurlijk

Zou iemand me hierbij kunnen helpen. Ik heb het vermoeden dat ik in de buurt van de overrides moet gaan zoeken maar mijn ervaring is niet super te noemen

https://k1600gt.nl


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 21-05 16:50

gorgi_19

Kruimeltjes zijn weer op :9

Page_load wordt normaliter alleen gebruikt om initieel je data op orde te krijgen (tenzij viewstate uit staat; eventueel om in sommige gevallen je controlcollection op orde te krijgen). Events van ImageButtons komen alleen voor bij Postbacks.

Oftewel: Normaliter bijten deze twee elkaar niet. Wat wil je voor elkaar krijgen dan?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • shades
  • Registratie: September 2001
  • Laatst online: 19-05 08:57
gorgi_19 schreef op 04 oktober 2004 @ 14:53:
Page_load wordt normaliter alleen gebruikt om initieel je data op orde te krijgen (tenzij viewstate uit staat; eventueel om in sommige gevallen je controlcollection op orde te krijgen). Events van ImageButtons komen alleen voor bij Postbacks.

Oftewel: Normaliter bijten deze twee elkaar niet. Wat wil je voor elkaar krijgen dan?
Dat de tabel die ik opbouw voorzien wordt van nieuwe data. De delete knop (of voegtoe knop die niet in de voorbeeld code staat) doet een mutatie naar de database. Deze data moet dus opnieuw ingeladen worden. Het is dus handig dat dit voor de page_load komt.

Volgens deze blog klopt er ook iets niet helemaal : http://scottonwriting.net/sowBlog/posts/1263.aspx

[ Voor 32% gewijzigd door shades op 04-10-2004 15:29 ]

https://k1600gt.nl


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 21-05 13:52
shades schreef op 04 oktober 2004 @ 15:21:
[...]


Dat de tabel die ik opbouw voorzien wordt van nieuwe data. De delete knop (of voegtoe knop die niet in de voorbeeld code staat) doet een mutatie naar de database. Deze data moet dus opnieuw ingeladen worden. Het is dus handig dat dit voor de page_load komt.

Volgens deze blog klopt er ook iets niet helemaal : http://scottonwriting.net/sowBlog/posts/1263.aspx
Je moet dan dus in je Page_Load de data eenmalig ophalen en je controls vullen. Bij een PostBack moet je dit niet nogmaals doen, dus er moet een "if (!IsPostBack)" omheen.
Vervolgens kun je in je eventhandler datzelfde weer doen, maar dan dus nadat je de wijzigingen hebt doorgevoerd.
Hierdoor wordt eerst de mutatie uitgevoerd en vervolgens je controls opnieuw gevuld.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 21-05 16:50

gorgi_19

Kruimeltjes zijn weer op :9

Daarnaast behandeld die weblog een heel ander probleem; daar gaat het in over de dynamische controls en het 'overschrijven' van de control ID's bij het opnieuw binden.

Oftewel: een aparte method maken voor het binden van je data en deze method aanroepen na je delete-event, update / insert event en in je Page_load (en deze icm een controle op Page.IsPostback)

Een andere optie is om na een delete / update / insert een Redirect uit te voeren.

[ Voor 47% gewijzigd door gorgi_19 op 04-10-2004 19:58 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • shades
  • Registratie: September 2001
  • Laatst online: 19-05 08:57
gorgi_19 schreef op 04 oktober 2004 @ 19:52:
Daarnaast behandeld die weblog een heel ander probleem; daar gaat het in over de dynamische controls en het 'overschrijven' van de control ID's bij het opnieuw binden.

Oftewel: een aparte method maken voor het binden van je data en deze method aanroepen na je delete-event, update / insert event en in je Page_load (en deze icm een controle op Page.IsPostback)

Een andere optie is om na een delete / update / insert een Redirect uit te voeren.
Las het nog een keer na ja - beschijft iets anders.

Ja, een redirect heeft inderdaad hetzelfde tot gevolg. Ik denk dat ik dat maar gewoon doe.. beejt plain old asp maar werkt wel.. Was het al helemaal vergeten :)

https://k1600gt.nl


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 21-05 16:50

gorgi_19

Kruimeltjes zijn weer op :9

shades schreef op 04 oktober 2004 @ 20:10:
[...]

Las het nog een keer na ja - beschijft iets anders.

Ja, een redirect heeft inderdaad hetzelfde tot gevolg. Ik denk dat ik dat maar gewoon doe.. beejt plain old asp maar werkt wel.. Was het al helemaal vergeten :)
Plus je voorkomt het F5-probleem :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1