GridView自定义分页控件

看了这位老兄的控件,并做了点修改

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() + "&nbsp;&nbsp;");
           
            writer.Write("</td><td width='60%' align='right'>");
           
            writer.Write("Page " + CurPage.ToString() + " of " + PageCount.ToString() + "&nbsp;&nbsp;");

            if (CurPage != 1)
            {
                //writer.Write("<a href=\"javascript:_doPost('" + (CurPage - 1) + "')\">上一页</a>\n ");
                writer.Write("<a href=\"javascript:_doPost(1)\")>First</a>\n&nbsp;");
                writer.Write("<a href=\"javascript:_doPost('" + (CurPage - 1) + "')\">Previous</a>\n&nbsp;");
            }
            else
            {
                writer.Write("First" + "&nbsp;&nbsp;");
                writer.Write("Previous" + "&nbsp;&nbsp;");
            }

            //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&nbsp;");
                }
                else
                {
                    writer.Write("<a href=\"javascript:_doPost('" + i + "')\">[" + i + "]</a>\n&nbsp;");
                }
            }

            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" + "&nbsp;&nbsp;");
                writer.Write("Last" + "&nbsp;&nbsp;");
            }
            writer.Write("</td></tr></Table>\n");
            writer.Write("</div>\n");
        }
        #endregion 方法
    }

posted @ 2008-09-19 15:49  Rose2007  阅读(613)  评论(0编辑  收藏  举报