Generally DataList Control does not support pagination by its default properties..But if you need it you have to do it by mannual coding.
Add
PagedDataSource pds = new PagedDataSource();
at the top of your Page_Load(object sender, EventArgs e) event
Now Add these methods in your code behind page
public void BindDatalist() //Get Data and Set Page Size ,Page Index
{
//dlstFeatureAlbum.DataSource = FeatureAlbum.GetAlbums();
// dlstFeatureAlbum.DataBind();
DataTable dt = new DataTable();
dt = FeatureAlbum.GetAlbums();
pds.DataSource = dt.DefaultView;
pds.AllowPaging = true;
pds.PageSize = 24;//Convert.ToInt16(ddlPageSize.SelectedValue);
if (dt.Rows.Count <= 24)
{
divPageIndex.Visible = false;
}
if (dt.Rows.Count == 0)
{
lblEmptyList.Visible = true;
}
pds.CurrentPageIndex = CurrentPage;
lnkbtnNext.Enabled = !pds.IsLastPage;
lnkbtnPrevious.Enabled = !pds.IsFirstPage;
dlstFeatureAlbum.DataSource = pds;
dlstFeatureAlbum.DataBind();
doPaging();
}
//Code for Pagination
public int CurrentPage //this method is for storing the current page index
//to view state
{
get
{
if (this.ViewState["CurrentPage"] == null)
return 0;
else
return Convert.ToInt16(this.ViewState["CurrentPage"].ToString());
}
set
{
this.ViewState["CurrentPage"] = value;
}
}
private void doPaging() //Calculating total results and divide them into pages
{
DataTable dt = new DataTable();
dt.Columns.Add("PageIndex");
dt.Columns.Add("PageText");
for (int i = 0; i < pds.PageCount; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dr[1] = i + 1;
dt.Rows.Add(dr);
}
dlPaging.DataSource = dt;
dlPaging.DataBind();
}
protected void dlPaging_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName.Equals("lnkbtnPaging"))
{
CurrentPage = Convert.ToInt16(e.CommandArgument.ToString());
BindDatalist();
}
}
protected void lnkbtnPrevious_Click(object sender, EventArgs e) //navigation
{
CurrentPage -= 1;
BindDatalist();
}
protected void lnkbtnNext_Click(object sender, EventArgs e) //navigation
{
CurrentPage += 1;
BindDatalist();
}
protected void dlPaging_ItemDataBound(object sender, DataListItemEventArgs e)
{
LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl("lnkbtnPaging");
if (lnkbtnPage.CommandArgument.ToString() == CurrentPage.ToString())
{
lnkbtnPage.Enabled = false;
lnkbtnPage.Font.Bold = true;
}
}
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
CurrentPage = 0;
BindDatalist();
}
//End
Friday, October 31, 2008
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment