看了这位老兄的控件,并做了点修改
http://www.cnblogs.com/acro/archive/2008/06/18/1224758.html
主要在显示方面改进了
1。加了边框
2。每次只显示10页的链接(不足10页显示实际页数的链接)
3。加了First, Last
外观如下:
代码:修改了RenderContents方法
protected override void RenderContents(HtmlTextWriter writer)
{
writer.Write("<div class=\"\">\n");
//writer.Write("记录数:");
//writer.Write(RecordCount);
//writer.Write(" 总页数:");
//writer.Write(" Total Pages:");
//writer.Write(PageCount+" ");
writer.Write("<Table width='100%' style='border: 1px solid gray'><tr><td width='40%'>");
writer.Write("Total Records:" + RecordCount.ToString() + " ");
writer.Write("</td><td width='60%' align='right'>");
writer.Write("Page " + CurPage.ToString() + " of " + PageCount.ToString() + " ");
if (CurPage != 1)
{
//writer.Write("<a href=\"javascript:_doPost('" + (CurPage - 1) + "')\">上一页</a>\n ");
writer.Write("<a href=\"javascript:_doPost(1)\")>First</a>\n ");
writer.Write("<a href=\"javascript:_doPost('" + (CurPage - 1) + "')\">Previous</a>\n ");
}
else
{
writer.Write("First" + " ");
writer.Write("Previous" + " ");
}
//get low number and high number of page link
int pageLinkPerPage = 10;
int lowNum = 1;
int highNum = 10;
if (CurPage > (pageLinkPerPage / 2))
{
lowNum = CurPage - (pageLinkPerPage / 2);
}
if (lowNum < 1)
{ lowNum = 1; }
if ( PageCount <= pageLinkPerPage)
{
highNum = PageCount;
}
else
{
highNum = lowNum + pageLinkPerPage - 1;
}
if (highNum > PageCount)
{
highNum = PageCount;
}
//build page numbers
//for (int i = 1; i <= PageCount; i++)
for(int i=lowNum;i<=highNum;i++)
{
if (i == CurPage)
{
//writer.Write("<a href=\"javascript:_doPost('" + i + "')\">" + i + "</a>\n ");
writer.Write("[" + i.ToString() + "]\n ");
}
else
{
writer.Write("<a href=\"javascript:_doPost('" + i + "')\">[" + i + "]</a>\n ");
}
}
if(CurPage != PageCount)
{
//writer.Write("<a href=\"javascript:_doPost('" + (CurPage + 1) + "')\">下一页</a>\n");
writer.Write("<a href=\"javascript:_doPost('" + (CurPage + 1) + "')\">Next</a>\n");
writer.Write("<a href=\"javascript:_doPost('" + PageCount + "')\">Last</a>\n");
}
else
{
writer.Write("Next" + " ");
writer.Write("Last" + " ");
}
writer.Write("</td></tr></Table>\n");
writer.Write("</div>\n");
}
#endregion 方法
}