問題已由我修改以顯示完整圖片。頁面生命週期問題
我有一個基本的問題:
後面的代碼:
protected void Page_Load(object sender, EventArgs e)
{
int firstPageIndex = 0;
int lastPageIndex = 5;
if (TotalPageNumber > 5)
{
if ((TotalPageNumber - PageIndex) <= 5)
firstPageIndex = TotalPageNumber - 5;
firstPageIndex = PageIndex < 3 ? 0 : PageIndex - 2;
}
else
{
firstPageIndex = 0;
lastPageIndex = TotalPageNumber;
}
for (int i = firstPageIndex; i < firstPageIndex + lastPageIndex; i++)
{
LinkButton lnk = new LinkButton();
lnk.CommandArgument = i.ToString();
lnk.Click += new EventHandler(lblPageNumber_Click);
lnk.ID = "lnkPage" + (i + 1).ToString();
lnk.Text = (i + 1).ToString();
plcPagerHolder.Controls.Add(lnk);
} }
int _pageIndex;
public int PageIndex
{
get
{
object objPage = ViewState["_pageIndex"];
if (objPage == null)
{
_pageIndex = 0;
}
else
{
_pageIndex = (int)objPage;
}
return _pageIndex;
}
set {ViewState["_pageIndex"] = value; }
}
protected void lnkPagerNext_Click(object sender, EventArgs e)
{
PageIndex = PageIndex == TotalPageNumber - 1 ? 0 : PageIndex + 1;
}
問題是與Page_Load事件,我想到的是點擊LinkButton的後獲得新的PageIndex。
更新:
我美孚增加了新的控制頁面的基礎上,提供頁面索引,所以我想我不能把它的預渲染。
+1。 「PreRender」是最理想的位置恕我直言。 – 2010-03-24 13:07:56
你也可以使用Page_LoadComplete而不是在PreRender – Greg 2010-03-24 13:09:26
請參閱我的更新 – toraan 2010-03-24 13:18:36