当前位置:问百问>生活百科>新闻分页实现

新闻分页实现

2024-08-27 07:27:28 编辑:zane 浏览量:543

新闻分页实现

的有关信息介绍如下:

新闻分页实现

长文章分页配置文件 using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string m_strContent = OutputArticle(); this.lbContent.Text = OutputBySize(m_strContent); } } public string OutputBySize(string p_strContent) { int m_intPageSize = 100;//文章每页大小 int m_intCurrentPage = 1;//设置第一页为初始页 int m_intTotalPage = 0; int m_intArticlelength = p_strContent.Length;//文章长度 string m_strRet = p_strContent; if (m_intPageSize < m_intArticlelength) {//如果每页大小大于文章长度时就不用分页了 if (m_intArticlelength % m_intPageSize == 0) {//set total pages count m_intTotalPage = m_intArticlelength / m_intPageSize; } else {//if the totalsize m_intTotalPage = m_intArticlelength / m_intPageSize + 1; } if (Request.QueryString["pages"] != null) {//set Current page number try {//处理不正常的地址栏的值 m_intCurrentPage = Convert.ToInt32(Request.QueryString["pages"]); if (m_intCurrentPage > m_intTotalPage) m_intCurrentPage = m_intTotalPage; } catch { m_intCurrentPage = m_intCurrentPage; } } //set the page content 设置获取当前页的大小 m_intPageSize = m_intCurrentPage < m_intTotalPage ? m_intPageSize : (m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1)); m_strRet = p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize); string m_strPageInfo = ""; for (int i = 1; i <= m_intTotalPage; i++) { if (i == m_intCurrentPage) m_strPageInfo += "" + i + "|"; else m_strPageInfo += "" + i + "|"; } //输出显示各个页码 this.TitlePage.Text = m_strPageInfo; } this.totalpage.Text = m_intCurrentPage.ToString(); return m_strRet; } private string OutputArticle() { string m_strRet = "现今专业网站异军突起,而门户网站影响力正逐年下降?因为随着网络的发展,单个门户网站很难满足网络用户所有的需求,人们需要的信息常常都只能通过一些专业网站来获取。这也正是Google价值观10个真理的第一条:以用户为中心,其他一切纷至沓来目前上网主要有两大群体:一是娱乐,二是学习。娱乐包括游戏,音乐,电影,聊天等等。在娱乐方面,个人是很难做成功的,想要获得长足的发展,离不开娱乐公司的支持。Chinamp3为网民提供了免费MP3下载的服务,是个很受网民欢迎的网站,但却因为MP3版权的原因而闹得官司不断。其次是学习,而上网学习又尤以计算机相关背景的为主。"; //从数据库中读取要显示的记录,赋值给m_strRet return m_strRet; }}#region///

/// 分页类/// public class Page{ /// 长内容分页 哈希表需要引用命名空间System.Collections /// /// 新闻内容 /// 是新闻当前页数 /// 每页显示字符长度 /// 页码链接地址 /// public System.Collections.Hashtable SeparatePages(string n_content, string page, int size, string linkurl) { //在此处放置初始化页的用户代码 System.Collections.Hashtable returnHash = new System.Collections.Hashtable(); int start, stops, t, stat, pp, pagecount, pagesize; string pa, articletxt, articletext, html; int pig = 0; //变量初始值 stat = 0; start = 0; //开始查询的字符串位置,初始为0 stops = 0; pagesize = size;//定义每页至少显示字符串数 pagecount = 0; html = ""; //获得当前的页数 pa = page; if (pa == "" || pa == null) { pa = "1"; } pp = Convert.ToInt32(pa); //获得内容 articletxt = n_content; //判断页面的内容长度是否大于定义的每页至少显示字符串数 if (articletxt.Length >= pagesize) // 如果大于字符串数,则我们可以分页显示 { t = articletxt.Length / pagesize; //获得大致的总页数 for (int j = 0; j <= t; j++) { //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找 if (start + pagesize < articletxt.Length) { stat = articletxt.ToLower().IndexOf("

", start + pagesize); //查找

分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("", start + pagesize); //查找

分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("

", start + pagesize); //查找

分页点的位置 } if (stat <= 0)//如果找不到 { } else { stops = stat; //分页点的位置也就作为这一页的终点位置 if (start < articletxt.Length) { if ((articletxt.Length - start) < pagesize) { if (pig == 0) { pagecount = pagecount + 1; } pig = 1; } else { pagecount = pagecount + 1; } } if (start + pagesize >= articletxt.Length) //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点 { stops = articletxt.Length; } if (pp == j + 1) //如果是当前,那么输出当前页的内容 { articletext = articletxt.Substring(start, stops - start); //取内容的起始位置到终点位置这段字符串输出 returnHash["content"] = articletext; } start = stat; //将终点位置作为下一页的起始位置 } }// pagecount = pagecount - 1; } else { returnHash["content"] = n_content; } //分页部分(这里就简单多了) //定义分页代码变量 if (pagecount > 1) //当页数大于1的时候我们显示页数 { if (pp - 1 > 0) //显示上一页,方便浏览 { html = html + "[上一页] "; } else { if (pp == 1) { html = html + "[上一页] "; } else { html = html + "[上一页] "; } } for (int i = 1; i <= pagecount; i++) { if (i == pp) //如果是当前页,加粗显示 { html = html + "[" + i + "] "; } else { html = html + "[" + i + "] "; } } if (pp + 1 > pagecount) //显示下一页,方便浏览 { if (pp == pagecount) { html = html + "[下一页] "; } else { html = html + "[下一页]

"; } } else { html = html + "[下一页]

"; } } returnHash["pagetxt"] = html; return returnHash; }}#endregion

版权声明:文章由 问百问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.wenbwen.com/life/145016.html