青海网站建设、网络推广最好的公司--您身边的网站建设专家,马上拿起电话,联系我们:0971-8235355   
青海西宁网站建设、网站制作公司-西宁威势电子信息服务有限公司 首页 |  公司简介 |  网站建设 |  网络推广 |  空间租用 |  域名注册 |  企业邮局 |  网络安全 |  网站编程 |  客服中心 |  联系我们 |  人才招聘
 
西宁威势最新网站制做案例展示
Lastest Project
 
西宁网站建设  
当前位置为:首页 >> .NET编程 >> 正文  
[原创] ASP.NET 文章内容分页程序

文章来源: 西宁威势电子信息服务有限公司     发布时间:2010-11-25    浏览次数:6698   

    因为爱干净,所以不太喜欢ASP.NET自动生成的一大堆没用的__VIEWSTATE,本来显示文章内容也没有什么可向服务器端提交的,也没有什么东西可保留的,加上__VIEWSTATE返回到前台确实是太多,所以将服务器端的FORM RUN=SERVER全删除掉了,同时又为了SEO方面的考虑,直接将分页重写成HTML形式的,最终生成的分页开式为:

[ 第1页 ] [ 第2页 ] [ 第3页 ] [ 第4页 ] [ 第5页 ] [ 第6页 ] [ 第7页 ] [ 第8页 ] [ 第9页 ] [ 第10页 ] [ 下一页 ] 

这个形式的,该文章总共有14页,点击下一页时形式为

[ 上一页 ] [ 第11页 ] [ 第12页 ] [ 第13页 ] [ 第14页 ] 

同时,为了区别显示当前页,所以将当前页标成红色显示,点击第13页时效果如下:

[ 上一页 ] [ 第11页 ] [ 第12页 ] [ 第13页 ] [ 第14页 ] 

生成的链接形式为:

第一页:ShowNews/2010112401510259154259.html

第二页:ShowNews/2010112401510259154259-2.html

第三页:ShowNews/2010112401510259154259-3.html

以下为控制代码,大体上都已实现内容页分页功能,稍有不足是还没有把内容和分页代码隔离开,有时候应用的时候可能分页和内容会连在一起,大家自己改动一下代码即可,这里只是提供一大致思路,详细功能有待自己改善。

 protected string PageSplit(string content,int page,int pageSize)  //content为要分页的内容,PAGE为当前页

{
            string PageTag = @"<div style=""page-break-after: always""><span style=""display: none"">[page]</span></div>";  //分页特证码或标记
            //int pageSize = 5;  //每页显示多少分页

            if (content.IndexOf(PageTag) <= 0)  //如果没有分页
            {
                return content;
            }
            else  //如果有分页
            {
                string[] ContentArry = Regex.Split(content, @"<div style=""page-break-after: always""><span style=""display: none"">\[page\]", RegexOptions.IgnoreCase);
              
                //要是页数超过pagesize页,代表分组翻页,比如pagesize=10,而分页数有31,也就是一篇文章分31页显示,那就是分四组翻页,[1-10 下一页] [上一页 11-20 下一页] [同 21-30 同] [上一页 31-31] 四组显示

                int PageArryCount;  //总的分页组数
                if (ContentArry.Length % pageSize == 0)
                {
                    PageArryCount = ContentArry.Length / pageSize;
                }
                else
                {
                    PageArryCount=((ContentArry.Length/pageSize)+1);
                }

                //==============判断当前页是哪个分页组的
                int CurrentArry;
                if (page % pageSize == 0)
                {
                    CurrentArry = page / pageSize;
                }
                else
                {
                    CurrentArry=((page/pageSize)+1);
                }

                string url = Request["id"];
                string PageExt = ".html";
                string Shangyiye = "";
                string Xiayiye = "";
                string ListStr = "";

                for (int i = (CurrentArry-1) * pageSize; i < ((CurrentArry-1) * pageSize) + pageSize;i++ )
                {
                    if (i == 0)  //如果是第一页将第1页的“-1.html”省略“-1”
                    {
                        if (page - 1 == i)  //再判断当前页是不是第一页,是的话设置为当前页样式为红色
                        {
                            ListStr += @"<a href=""" + url + PageExt + "\" style='color:red'>[ 第" + (i + 1) + "页 ]</a>&nbsp;";
                        }
                        else
                        {
                            ListStr += @"<a href=""" + url + PageExt + "\" style='color:black'>[ 第" + (i + 1) + "页 ]</a>&nbsp;";
                        }
                    }
                    else
                    {
                        if (page - 1 == i)  //设置当前页样式为红色
                        {
                            ListStr += @"<a href=""" + url + "-" + (i + 1) + PageExt + "\" style='color:red'>[ 第" + (i + 1) + "页 ]</a>&nbsp;";
                        }
                        else
                        {
                            ListStr += @"<a href=""" + url + "-" + (i + 1) + PageExt + "\" style='color:black'>[ 第" + (i + 1) + "页 ]</a>&nbsp;";
                        }
                    }

                    if (i >= ContentArry.Length-1) break;

                }

                if (CurrentArry >= PageArryCount)  //如果当前分页组在于或等于总组数
                {
                    Xiayiye = "";
                }
                else
                {
                    Xiayiye = @"<a href=""" + url + "-" + (((CurrentArry) * pageSize) + 1) + PageExt + "\" style='color:red'>[ 下一页 ]</a>&nbsp;";
                }
                if (CurrentArry <= 1)
                {
                    Shangyiye = "";
                }
                else
                {
                    if (page - 1 == 1)
                    {
                        Shangyiye = @"<a href=""" + url +  PageExt + "\" style='color:red'>[ 上一页 ]</a>&nbsp;";
                    }
                    else
                    {
                        Shangyiye = @"<a href=""" + url + "-" + ((CurrentArry - 1) * pageSize) + PageExt + "\" style='color:red'>[ 上一页 ]</a>&nbsp;";
                    }
                }
                return ContentArry[page-1]+ Shangyiye + ListStr + Xiayiye;
            }
        }


上一篇:使用BackgroundWorker创建多线程
下一篇:.NET对IIS的控制
评论列表
正在加载评论……
  
评论   
呢  称:
验证码: 若看不清请点击更换!
内  容:
 
 
  在线洽谈咨询:
点击这里,在线洽谈   点击这里,在线洽谈   点击这里,在线洽谈
与我交谈  与我交谈 与我交谈
乘车路线    汇款方式   加盟合作  人才招聘  
公司地址:青海省西宁市西关大街73号(三二四部队招行所四楼)     青ICP备13000578号-1 公安机关备案号:63010402000123    
QQ:147399120    mail:lostlove000@163.com    电话: 13897410341    邮编:810000
© Copyright( 2008-2009) QhWins.Com All Rights Reserved    版权所有:西宁威势电子信息服务有限公司 未经书面制授权,请勿随意转载!
业务:青海网站制做青海网站建设青海网页设计西宁网站制做西宁网站建设青海域名注册青海网络推广青海网站推广青海空间租用青海软件开发网站安全网络安全