Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Is er een betere/nettere manier dan (! IsPostBack) ?

Pagina: 1
Acties:
  • 244 views sinds 30-01-2008
  • Reageer

  • F-Tim
  • Registratie: November 2003
  • Laatst online: 28-11 22:48
Wellicht een hele simpele vraag met iets teveel uitleg, maar beter teveel uitleg dan te weinig en een slotje.....

Om het nog redelijk kort te houden, ik wil middels ASP.Net een pagina maken waarop iemand zijn Profiel kan wijzigen. In principe is de pagina opgebouwd uit Label's en Textbox'en, een Opslaan en Annuleren knop.

Het probleem waar ik toen tegen aan liep was het volgende; Als ik bij de PageLoad functie de Textbox'en deed vullen, dan bleef ASP.Net stug deze (vooraf geladen) waarden vasthouden als ik ze naderhand wilde uitlezen als ik op de Opslaan knop klikte, ook als ik de inhoud van de textbox'en gewijzigd had. Na wat test en zoekwerk bleek dat als ik geen waardes erin zette dat ASP.Net wél de zelf ingevoerde waardes kon uitlezen. Conclusie, het probleem lag mijns insziens aan het feit dat de PageLoad de originele waardes terugzette in de Textbox'en alvorens ze werden opgeslagen.

Na wat zoekwerk op internet en GoT, bleek dat het op te lossen was door in de PageLoad een simpel if-statement te gebruiken waarin werd gezegd if (! IsPostBack){ voer code uit }, zodoende werden de velden niet opnieuw gevuld, en konden de gewijzigde waarden in de database worden opgeslagen.

Is dit de enige oplossing? Of is er nog een nettere oplossing (buiten het gebruik van Javascript dan)?

Wanna play?


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 31-10 11:58
Nee, dit is de way-to-go.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:16

gorgi_19

Kruimeltjes zijn weer op :9

Daarnaast is het niet zo gek dat je die controle moet uitvoeren; er zijn genoeg situaties te bedenken dat je de Page_Load bij iedere request uitgevoerd moet worden.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 31-10 11:58
Het is wat dat betreft ook juist fijn dat je het op die manier kunt doen want je kunt er (eventueel) ook roundtrips naar bijvoorbeeld een database mee besparen. Dat is alleen wel een afweging die je moet maken omdat je dan vaak wel dingen in de viewstate op moet gaan slaan en het dus heen en weer stuurt naar de client.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 17-10 16:43
hoezo is !isPostBack niet netjes trouwens?

Tis haast een event :P

~ Mijn prog blog!


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Onze 'BasePage' (inherits System.Web.UI.Page) checked automatisch op IsPostback en indien true dan wordt het Postback event afgevuurt. Op die manier blijft de page_load overzichtelijk.

Vroeger hadden wij nogal aardig wat lappen code in de page_load staan. Dan werden nog weleens wat blokken code in een procedure geknalt en dan vanuit page_load die procedures aangeroepen. Uiteindelijk hebben wij maar een event PostBack gedeclareerd.

Om al toch al in het 1.1 framework ajax technieken te kunnen gebruiken heeft de delegate een 'cancel' argument. Als dit argument op true wordt gezet wordt de rest van page_load niet meer uitgevoerd. Ook wordt het bij nog wel eens gebruikt om een gespecialiseerde cache terug te geven.

If it isn't broken, fix it until it is..

Pagina: 1