I have the following PerformanceFactsheet.aspx.cs page class
public partial class PerformanceFactsheet : FactsheetBase { protected void Page_Load(object sender, EventArgs e) { // do stuff with the data extracted in FactsheetBase divPerformance.Controls.Add(this.Data); } }
where FactsheetBase is defined as
public class FactsheetBase : System.Web.UI.Page { public MyPageData Data { get; set; } protected void Page_Load(object sender, EventArgs e) { // get data that's common to all implementors of FactsheetBase // and store the values in FactsheetBase's properties this.Data = ExtractPageData(Request.QueryString["data"]); } }
The problem is that FactsheetBase's Page_Load is not executing.
Can anyone tell me what I'm doing wrong? Is there a better way to get the result I'm after?
Thanks
We faced the similar problem, All you need to do is just register the handler in the constructor. :)
public class FactsheetBase : System.Web.UI.Page { public FactsheetBase() { this.Load += new EventHandler(this.Page_Load); } public MyPageData Data { get; set; } protected void Page_Load(object sender, EventArgs e) { // get data that's common to all implementors of FactsheetBase // and store the values in FactsheetBase's properties this.Data = ExtractPageData(Request.QueryString["data"]); } }
Another approach would be to override OnLoad() which is less preferred.
public class FactsheetBase : System.Web.UI.Page { public FactsheetBase() { } public MyPageData Data { get; set; } protected override void OnLoad(EventArgs e) { //your code // get data that's common to all implementors of FactsheetBase // and store the values in FactsheetBase's properties this.Data = ExtractPageData(Request.QueryString["data"]); base.OnLoad(e); } }
Instead of a Page_Load() method, override OnLoad() and call base.OnLoad() in PerformanceFactsheet
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With