In un precedente Tip abbiamo visto come passare i valori tra le pagine Web attraverso il metodo
Server.Transfer. Solitamente però in
ASP.NET 1.1 quando lanciavamo un Postback premendo sul classico Button non avevamo modo di modificare la pagina che riceveva il Postback perchè era la stessa che conteneva il Button. E' proprio questo uno dei grossi limiti di cui si lamentano molti programmatori.
In
ASP.NET 2.0 così è stato introdotto un nuovo metodo chiamato
Cross Page PostBack.
Questo metodo ci dà la possibilità di eseguire il Postback in un'altra pagina rispetto a quella dove siamo, e per fare questo basta impostare la nuova proprietà
PostBackUrl del bottone.
%lt;asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/home.aspx" />La pagina chiamata avrà la proprietà
IsCrossPagePostBack settata a
True.
Il CrossPage Post Back risulta molto utile per esempio nei form di registrazione di un'utente. In questo caso infatti una volta riempiti tutti i campi l'utente può essere rediretto direttamente alla home page o ad una pagina che elabori i dati inseriti.
Sia che venga utilizzato
Server.Transfer che il
CrossPage PostBack per individuare la pagina chiamante, abbiamo una nuova proprietà della classe Page chiamata
PreviousPage.
Quindi per esempio se vogliamo accedere ad un controllo della pagina chiamante esempio una label ci basta fare:
C#Label1.Text = ((Label)PreviousPage.FindControl("lblTitolo")).Text;
VB.NETLabel1.Text =(Ctype(PreviousPage.FindControl("lblTitolo"),Label))