ASP.NET'te bir sayfadan diğer sayfaya verileri aktarmak için kullanılan yollardan birisi de bilindiği üzere Cross-Page Postback tekniğidir.
a.aspx sayfasından b.aspx Cross-Page Postback işlemi gerçekleştiğinde a.aspx sayfasına olduğu gibi b.aspx sayfasından erişebilinir.b.aspx sayfasında da PreviousPage özelliği ile a.aspx sayfasına erişiyoruz. a.aspx sayfasındaki herhangi bir kontrole de PreviousPage.FindControl("xx_id") ile erişiyoruz. Peki ya a.aspx deki herhangi bir Property'ye erişmek istersek ?
Eğer b.aspx'e sadece a.aspx den Cross-Page Postback işlemi ile gelindiğini düşünürsek b.aspx'e ;<%@ PreviousPageType VirtualPath="~/a.aspx" %>direktifini eklemeniz yeterli. Artık b.aspx.cs de PreviousPage özelliği size a.aspx sayfasını temsil ediyor olacaktır. örneğin;
public partial class a : System.Web.UI.Page { //....
private int _test; public int Test { get { return _test; } set { _test = value; } }
}
işte b.aspx sayfasından Test özelliğine direk erişiyor olabileceğiz.
public partial class b: System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (PreviousPage != null) Response.Write(PreviousPage.Test.ToString()); }}
Not : (a)PreviousPage tür dönüştürme işlemi ile de gerçekleştirebilirsiniz.if (PreviousPage != null) Response.Write(((_Default)PreviousPage).Test.ToString());
Remember Me