Tipicamente questo è uno scenario semplice per trasmettere dati tra una pagina e l'altra dello stesso dominio (CrossPage) fra pagine .aspx

Metodo PostBackUrl

In realtà PostBackUrl non è un metodo ma una proprietà implicita del controllo server button.

Step 1: chiariamo alcuni termini

Il valore di default è "" (vuoto), il che significa che la pagina indirizzerà a sé stessa tutti i contenuti (compresi quelli dei controlli) MANTENENDONE LO STATO (ViewState);
questo stato di AutoPostback può essere intercettato e verificato con la funzione "IsPostback" che ritornerà:
"false" al primo caricamento della pagina o quando la chiamata della pagina fosse avvenuta con un link html oppure:
"true" quando invece la pagina verrà ricaricata a seguito di un evento di un server button (o di un altro controllo al quale la proprietà AutoPostBack sia stata settata su "true")

VERIFICA: IsPostback=false

se è il primo caricamento dovresti leggere: "IsPostback=false", altrimenti: "IsPostback=true"

prova a scatenare un PostBack cambiando la selezione della DropDownList (alla quale è stata settata la proprietà AutoPostBack su "true")

RESETTA "IsPostBack" a FALSE


Step 2: dove vengono memorizzati i dati nel tragitto di PostBack?

come sappiamo il protocollo HTTP è un protocollo "senza memoria" - Questo costituisce un serio problema per pagine (come le pagine aspx) che elaborano il codice sul server e inviano i risultati al client;
infatti, durante questo percorso tutte le variabili vanno perse così come andrebbero persi tutti i dati inseriti nei controlli di input se...
...se, come accennato precedentemente .NET non si preoccupasse di creare sottotraccia un HIDDENFIELD nel quale memorizzare tutte le proprietà e i dati di quei controlli:
Lo stato di visualizzazione di un controllo server è costituito da tutti i valori delle proprietà. Per conservare questi valori nelle richieste HTTP, i controlli server ASP.NET utilizzano questa proprietà, che è un'istanza del StateBag (classe), per archiviare i valori delle proprietà. I valori vengono quindi passati come una variabile a un elemento input Hidden HTML quando vengono elaborate le richieste successive.


Label