4 messaggi dal 04 giugno 2010
Ciao a tutti,
premetto che programmo in C# ma sto imparando asp.net.
Vi chiedo aiuto per il seguente problema:
ho una pagina web, rfq.aspx che richiamo per l'edit in questo modo rfq.aspx?Id=n,
nell'evento Load del form controllo la querystring e popolo i controlli con il record corretto, con Id preso dal querystring.
A questo punto ho un button, sull'evento on_click assegno a delle variabili i valori delle textbox e poi tento l'update del record.
Il problema è che il valore assegnato alle variabili, letto dalla proprietà text delle singole textbox, è sempre quello che avevano al momento in cui la pagina è stata caricata e non quella attuale.
Qualcuno riesce a darmi una mano ?
Ho la sensazione di perdermi qualche dettaglio, ma non riesco a capire dove...
Grazie.
Domenico.
10.227 messaggi dal 09 febbraio 2002
Contributi
Ciao Domenico,
quando invii il form, l'esecuzione ripassa di nuovo per l'evento Load della pagina e, in quel momento, vai a ricaricare i dati dal database e sovrascrivi i valori assegnati alla proprietà Text delle caselle.
Subito dopo viene invocato l'evento on_click, ma ormai è troppo tardi per salvare i dati perché tutto ciò che l'utente aveva digitato è andato ormai perso a causa del codice che si trova nell'evento Load.


La soluzione consiste nel mandare in esecuzione la logica che hai nell'evento Load solo la prima volta, cioè quando la pagina viene visualizzata all'utente. Quando il form viene inviato, allora non dovrai rieseguirla.

Vai così:
protected void Page_Load() {
 
  if (!Page.IsPostBack) {
    //Qui la tua logica che recupera i dati dal DB.
    //Quando l'utente invia il form, il valore di IsPostBack sarà true
    //e quindi l'if impedirà che il codice qui dentro venga eseguito
  }
  
}


ciao,
Moreno

Enjoy learning and just keep making
4 messaggi dal 04 giugno 2010
Ciao Moreno,
ti ringrazio per la risposta, è esattamente ciò che sbagliavo, fatto questo controllo nell'evento Load del form adesso funziona.
Ero convinto che questo evento venisse scatenato dopo l'evento click del button, quando il server restituisce la pagina al client.
Davvero tante grazie.
Domenico.
10.227 messaggi dal 09 febbraio 2002
Contributi
Ciao Domenico, prego!

Fai riferimento a questa immagine che ti mostra la sequenza degli eventi nel ciclo di vita di una pagina ASP.NET.
https://i-msdn.sec.s-msft.com/dynimg/IC386473.png

Come vedi, gli eventi sollevati dai controlli vengono gestiti alla riga "Event handling" che si trova dopo la riga "Load".

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.