2个回答
展开全部
长文章分页
配置文件
<add key="PagerSplit" value="|,|,|,|,|,|"/>
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 = "<p></p>";
for (int i = 1; i <= m_intTotalPage; i++)
{
if (i == m_intCurrentPage)
m_strPageInfo += "<b style='color:red;'>" + i + "</b>|";
else
m_strPageInfo += "<a href=Default.aspx?pages=" + i + ">" + i + "</a>|";
}
//输出显示各个页码
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
/// <summary>
/// 分页类
/// </summary>
public class Page
{
/// 长内容分页 哈希表需要引用命名空间System.Collections
/// </summary>
/// <param name="n_content">新闻内容</param>
/// <param name="page">是新闻当前页数</param>
/// <param name="size">每页显示字符长度</param>
/// <param name="linkurl">页码链接地址</param>
/// <returns></returns>
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("</p>", start + pagesize); //查找</P>分页点的位置
if (stat == -1)
stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置
if (stat == -1)
stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置
}
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 + "<a href=\"" + linkurl + "&page=" + (pp - 1) + "\">[上一页]</a> "; }
else
{
if (pp == 1)
{ html = html + "[<font color=#cccccc>上一页</font>] "; }
else
{ html = html + "<a href=\"" + linkurl + "&page=\"" + (1) + "\">[上一页]</a> "; }
}
for (int i = 1; i <= pagecount; i++)
{
if (i == pp) //如果是当前页,加粗显示
{ html = html + "<b>[" + i + "]</b> "; }
else
{ html = html + "<a href=\"" + linkurl + "&page=" + i + "\">[" + i + "]</a> "; }
}
if (pp + 1 > pagecount) //显示下一页,方便浏览
{
if (pp == pagecount)
{ html = html + "[<font color=#cccccc>下一页</font>] "; }
else
{ html = html + "<a href=\"" + linkurl + "&page=" + (pagecount) + "\">[下一页]</a></p>"; }
}
else
{
html = html + "<a href=\"" + linkurl + "&page=" + (pp + 1) + "\">[下一页]</a></p>";
}
}
returnHash["pagetxt"] = html;
return returnHash;
}
}
#endregion
配置文件
<add key="PagerSplit" value="|,|,|,|,|,|"/>
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 = "<p></p>";
for (int i = 1; i <= m_intTotalPage; i++)
{
if (i == m_intCurrentPage)
m_strPageInfo += "<b style='color:red;'>" + i + "</b>|";
else
m_strPageInfo += "<a href=Default.aspx?pages=" + i + ">" + i + "</a>|";
}
//输出显示各个页码
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
/// <summary>
/// 分页类
/// </summary>
public class Page
{
/// 长内容分页 哈希表需要引用命名空间System.Collections
/// </summary>
/// <param name="n_content">新闻内容</param>
/// <param name="page">是新闻当前页数</param>
/// <param name="size">每页显示字符长度</param>
/// <param name="linkurl">页码链接地址</param>
/// <returns></returns>
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("</p>", start + pagesize); //查找</P>分页点的位置
if (stat == -1)
stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置
if (stat == -1)
stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置
}
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 + "<a href=\"" + linkurl + "&page=" + (pp - 1) + "\">[上一页]</a> "; }
else
{
if (pp == 1)
{ html = html + "[<font color=#cccccc>上一页</font>] "; }
else
{ html = html + "<a href=\"" + linkurl + "&page=\"" + (1) + "\">[上一页]</a> "; }
}
for (int i = 1; i <= pagecount; i++)
{
if (i == pp) //如果是当前页,加粗显示
{ html = html + "<b>[" + i + "]</b> "; }
else
{ html = html + "<a href=\"" + linkurl + "&page=" + i + "\">[" + i + "]</a> "; }
}
if (pp + 1 > pagecount) //显示下一页,方便浏览
{
if (pp == pagecount)
{ html = html + "[<font color=#cccccc>下一页</font>] "; }
else
{ html = html + "<a href=\"" + linkurl + "&page=" + (pagecount) + "\">[下一页]</a></p>"; }
}
else
{
html = html + "<a href=\"" + linkurl + "&page=" + (pp + 1) + "\">[下一页]</a></p>";
}
}
returnHash["pagetxt"] = html;
return returnHash;
}
}
#endregion
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询