Или простой способ:
do {
foreach ($response->asArray() as $item){
//do something with it
}
} while($response = $facebookApp->next($response));
Мы столкнулись с аналогичной проблемой. Все, что вам нужно сделать, это просто зарегистрировать обработчик в конструкторе. :)
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"]);
}
}
Другой подход - переопределить OnLoad () , что менее предпочтительно.
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);
}
}
Хм, может я ошибаюсь, но я считаю, что это связано с наследованием: вы перезаписываете метод FactsheetBase Page_Load в производном классе.
Для его выполнения вы должны сделать что-то вроде
public partial class PerformanceFactsheet : FactsheetBase
{
protected void Page_Load(object sender, EventArgs e)
{
base.Page_Load( sender, e );
// do stuff with the data extracted in FactsheetBase
divPerformance.Controls.Add(this.Data);
}
}
EDIT: n8wrl определенно дал вам более чистое решение (я не программист ASPX).
Вместо метода Page_Load () переопределите OnLoad () и вызовите base.OnLoad () в PerformanceFactsheet