Megoldásként a Server objektum Transfer függvénye segít bennünket. Ennek használata előtt azonban szükség van jó néhány előkészítő lépésre. Először is szükségünk van adatokra, melyeket át szeretnénk adni.
Ehhez két TextBox-ot helyezünk a web lapra. Valamint készítünk két publikus property-t is, melyeken keresztül elérhetővé válik kívülről is a TextBox-okba írt adat.
public string Text1
{
get
{
return TextBox1.Text;
}
}
További előkészítő lépésként váltsunk át HTML nézetre a WebForm1-nél és az első sorában adjuk meg az osztályunk nevét a ClassName paraméterben.
<%@ Page language="c#" ClassName="WebForm1" ... %>
Ezek után már használhatjuk a Transfer függvényt, mondjuk egy gomb lenyomásánál.
private void Button2_Click(object sender, System.EventArgs e)
{
Server.Transfer("WebForm2.aspx");
}
Ennek hatására a vezérlés a WebForm2.aspx-re adódik át, ahol lehetőségünk lesz elérni a WebForm1-en megadott adatokat a feladatunknak megfelelően. Mielőtt a lekérdezésnek nekiállnánk, szükségünk van a WebForm2-nél is némi előkészületre. Váltsunk itt is HTML nézetre és adjunk meg egy Reference direktívát, melynél a Page paraméter-ben hivatkozunk a WebForm1.aspx-re. Ezzel azt érjük el, hogy a WebForm1 adatai hozzáférhetővé válnak a WebForm2-ben is.
<%@ Reference Page="WebForm1.aspx" %>
Most már hozzáférhetünk a WebForm1-hez. Tesszük mindezt úgy, hogy létrehozunk egy WebForm1 típusú változót, melynek értékül adjuk a Context Handler property-jében tárolt objektumot, mely nem más lesz mint a Transfer által átadott objektum.
WebForm1 wf = (WebForm1)Context.Handler;
Mivel a WebForm1-ben létrehoztunk egy-két property-t, melyen keresztül elérhető a TextBox-ok tartalma, így már semmi nem állhat az utunkba, hogy kiolvassuk ezek értékét és tetszés szerint felhasználjuk.
Label1.Text = wf.Text1 + wf.Text2;