I created this pager script in asp.net 2.0 it was originally done in MVC but it had errors so went ahead and recreated it in asp.net 2.0 and fixed the errors. What I want to be able to do is set the current page to div element with no link just a div and maybe a class applied to it, can someone help me make this possible. Here is my code
namespace AspNet.WebPortal.UI {
public class PagerBuilder
{
internal class PagerLink
{
private string _title = "";
public string Title
{
get { return _title; }
set { _title = value; }
}
private int _pageNo = 0;
public int PageNo
{
get { return _pageNo; }
set { _pageNo = value; }
}
private string _class = "";
public string Class
{
get { return _class; }
set { _class = value; }
}
public PagerLink(string title, int pageNo, string className)
{
this.Title = title;
this.PageNo = pageNo;
this.Class = className;
}
}
private readonly List<PagerLink> _pagerLinks = new List<PagerLink>();
private readonly string _urlTemplate;
public PagerBuilder(string urlTemplate)
{
_urlTemplate = urlTemplate;
}
private string _pagerClass = "";
public string PagerClass
{
get { return _pagerClass; }
set { _pagerClass = value; }
}
public void AddPage(string title, int pageNo)
{
AddPage(title, pageNo, string.Empty);
}
public void AddPage(string title, int pageNo, string itemClass)
{
_pagerLinks.Add(new PagerLink(title, pageNo, itemClass));
}
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("<div");
if (!string.IsNullOrEmpty(PagerClass))
{
sb.Append(" class=\"");
sb.Append(PagerClass);
sb.Append("\"");
}
sb.Append(">");
foreach (PagerLink link in _pagerLinks)
{
sb.Append("<a href=\"");
sb.AppendFormat(_urlTemplate, link.PageNo);
sb.Append("\"");
if (!string.IsNullOrEmpty(link.Class))
{
sb.Append(" clas=\"");
sb.Append(link.Class);
sb.Append("\"");
}
sb.Append(">");
sb.Append(link.Title);
sb.Append("</a>");
}
sb.Append("</div>");
return sb.ToString();
}
}
public class SimplePager
{
public static string CreatePager(int currentPage, int pageCount, string urlTemplate, string pagerClass)
{
if (currentPage < 0) currentPage = 1;
if (pageCount < 0) pageCount = 0;
PagerBuilder pager = new PagerBuilder(urlTemplate);
pager.PagerClass = pagerClass;
if (currentPage > 1)
{
pager.AddPage("<<", 1);
pager.AddPage("<", currentPage - 1);
}
int start = Math.Max(currentPage - 3, 1);
int end = Math.Min(pageCount, currentPage + 3);
for (int i = start; i <= end; i++)
{
if (i == currentPage)
pager.AddPage(i.ToString(), i, "current");
else
pager.AddPage(i.ToString(), i, "page");
}
if (currentPage < pageCount)
{
pager.AddPage(">", currentPage + 1);
pager.AddPage(">>", pageCount);
}
return pager.ToString();
}
}
}