Introduction
To privide smooth paging mechanism while delaing with huge quantitys of DATA.
Background
Below code snippet can be placed in a user control and can be reused as and when we require paging to be performed on a web UI.
The code
Code: C#.NET
Code:
private int GetItems()
{
//create new instance of PagedDataSource
PagedDataSource objPds = new PagedDataSource();
//set number of pages will appear
objPds.PageSize = PageSize;
objPds.DataSource = Ods.Select();
objPds.AllowPaging = true;
int count = objPds.PageCount;
objPds.CurrentPageIndex = CurrentPage;
if (objPds.Count > 0)
{
//dispaly controls if there are pages
btnPrevious.Visible = true;
btnNext.Visible = true;
btnLastRecord.Visible = true;
btnFirstRecord.Visible = true;
lblCurrentPage.Visible = true;
lblCurrentPage.Text = "Page " + Convert.ToString(CurrentPage + 1) + " of " + Convert.ToString(objPds.PageCount);
}
else
{
//disable controls if there are no pages
btnPrevious.Visible = false;
btnNext.Visible = false;
btnLastRecord.Visible = false;
btnFirstRecord.Visible = false;
lblCurrentPage.Visible = false;
}
btnPrevious.Enabled = !objPds.IsFirstPage;
btnNext.Enabled = !objPds.IsLastPage;
btnLastRecord.Enabled = !objPds.IsLastPage;
btnFirstRecord.Enabled = !objPds.IsFirstPage;
//check for object control if it a DataList
//we will use DList Variable
if (ObjectControl is DataList)
{
DList = (DataList)ObjectControl;
DList.DataSource = objPds;
DList.DataBind();
}
//check for object control if it a Repeater
//we will use Rep Variable
else if (ObjectControl is Repeater)
{
Rep = (Repeater)ObjectControl;
Rep.DataSource = objPds;
Rep.DataBind();
}
return count;
}
protected void btnPrevious_Click(object sender, EventArgs e)
{
//back to previous page
CurrentPage -= 1;
GetItems();
}
protected void btnNext_Click(object sender, EventArgs e)
{
//go to next page
CurrentPage += 1;
GetItems();
}


