privateconststringviewStateCurrentPageIndex ="CurrentPageIndex";
privateconststringviewStateRecordCount ="RecordCount";
publicdelegatevoidPageChangedHandle();
publiceventPageChangedHandle OnPageChanged;
publicintPageSize
{
get
{
returnConvert.ToInt32(ddlPageSize.SelectedValue);
}
}
publicintCurrentPageIndex
{
set
{
ViewState[viewStateCurrentPageIndex] = value;
}
get
{
if(ViewState[viewStateCurrentPageIndex] ==null)
{
ViewState[viewStateCurrentPageIndex] = 1;
}
returnConvert.ToInt32(ViewState[viewStateCurrentPageIndex]);
}
}
publicintRecordCount
{
get
{
if(ViewState[viewStateRecordCount] ==null)
{
ViewState[viewStateRecordCount] = 0;
}
returnConvert.ToInt32(ViewState[viewStateRecordCount]);
}
set
{
ViewState[viewStateRecordCount] = value;
}
}
privateintTotalNumberOfPages
{
get
{
returnRecordCount % PageSize == 0 ? RecordCount / PageSize : (RecordCount / PageSize) + 1;
}
}
protectedvoidPage_Load(objectsender, EventArgs e)
{
if(!IsPostBack)
{
}
}
protectedvoidlabFirstPage_Click(objectsender, EventArgs e)
{
CurrentPageIndex = 1;
this.DataBind();
}
protectedvoidlabPreviousPage_Click(objectsender, EventArgs e)
{
CurrentPageIndex -= 1;
this.DataBind();
}
protectedvoidlabNextPage_Click(objectsender, EventArgs e)
{
CurrentPageIndex += 1;
this.DataBind();
}
protectedvoidlabLastPage_Click(objectsender, EventArgs e)
{
CurrentPageIndex = TotalNumberOfPages;
this.DataBind();
}
protectedvoidbtnGo_Click(objectsender, EventArgs e)
{
intpageNum = 1;
boolisNum = Int32.TryParse(txtPageNum.Text,outpageNum);
if(isNum)
{
CurrentPageIndex = Math.Min(pageNum, TotalNumberOfPages);
}
this.DataBind();
}
protectedvoidddlPageSize_SelectedIndexChanged(objectsender, EventArgs e)
{
CurrentPageIndex = 1;
this.DataBind();
}
protectedoverridevoidDataBind(boolraiseOnDataBinding)
{
BindPager();
base.DataBind(raiseOnDataBinding);
if(OnPageChanged !=null)
{
OnPageChanged();
}
}
privatevoidBindPager()
{
labCurrentPageIndex.Text = CurrentPageIndex.ToString();
labTotalNumberOfPages.Text = TotalNumberOfPages.ToString();
labRecordCount.Text = RecordCount.ToString();
SetNavigateEnabled();
}
privatevoidSetNavigateEnabled()
{
txtPageNum.Text = CurrentPageIndex.ToString();
labFirstPage.Enabled =true;
labPreviousPage.Enabled =true;
labNextPage.Enabled =true;
labLastPage.Enabled =true;
labFirstPage.CssClass ="font-blue";
labPreviousPage.CssClass ="font-blue";
labNextPage.CssClass ="font-blue";
labLastPage.CssClass ="font-blue";
if(CurrentPageIndex == 1)
{
labFirstPage.Enabled =false;
labPreviousPage.Enabled =false;
labFirstPage.CssClass ="gray";
labPreviousPage.CssClass ="gray";
}
if(CurrentPageIndex == TotalNumberOfPages)
{
labNextPage.Enabled =false;
labLastPage.Enabled =false;
labNextPage.CssClass ="gray";
labLastPage.CssClass ="gray";
}
if(RecordCount == 0)
{
labFirstPage.Enabled =false;
labPreviousPage.Enabled =false;
labFirstPage.CssClass ="gray";
labPreviousPage.CssClass ="gray";
labNextPage.Enabled =false;
labLastPage.Enabled =false;
labNextPage.CssClass ="gray";
labLastPage.CssClass ="gray";
}
}