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 方法
    }

转载于:https://www.cnblogs.com/rose2007/archive/2008/09/19/1294217.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值