请教长文章分页的问题
请教长文章分页的问题,
应该怎么样来调用这个方法呢?如果直接使用SeparatePages(content)就不行
public Hashtable SeparatePages(string n_content,string page)
{
//在此处放置初始化页的用户代码
Hashtable returnHash = new Hashtable();
int start, stops, t, stat, pp, pagecount, pagesize, articleid;
string pa, articletxt, articletext, html;
int pig = 0;
//变量初始值
stat = 0;
start = 0; //开始查询的字符串位置,初始为0
stops = 0;
pagesize = 3000;//定义每页至少显示字符串数
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 <= 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[ "label1 "] = articletext;
}
start = stat; //将终点位置作为下一页的起始位置
}
}// pagecount = pagecount - 1;
}
else
{
returnHash[ "label1 "] = n_content;
}
//分页部分(这里就简单多了)
//定义分页代码变量
if (pagecount > 1) //当页数大于1的时候我们显示页数
{
if (pp - 1 > 0) //显示上一页,方便浏览
{ html = html + " <a href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= " + (pp - 1) + " '> [上一页] </a> "; }
else
{
if (pp == 1)
{ html = html + "[ <font color=#cccccc> 上一页 </font> ] "; }
else
{ html = html + " <a href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= " + (1) + " '> [上一页] </a> "; }
}
for (int i = 1; i <= pagecount; i++)
{
if (i == pp) //如果是当前页,加粗显示
{ html = html + " <b> [ " + i + "] </b> "; }
else
{ html = html + " <a href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= " + i + " '> [ " + i + "] </a> "; }
}
if (pp + 1 > pagecount) //显示下一页,方便浏览
{
if (pp == pagecount)
{ html = html + "[ <font color=#cccccc> 下一页 </font> ] "; }
else
{ html = html + " <a href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= " + (pagecount) + " '> [下一页] </a> </p> "; }
}
else
{
html = html + " <a href= 'View.aspx?ID= "+Convert.ToInt32(Request[ "ID "])+ "&page= " + (pp + 1) + " '> [下一页] </a> </p> ";
}
}
returnHash[ "label2 "] = html;
return returnHash;
}
[解决办法]
你用SeparatePages(content)
参数不对
他有两个参数
[解决办法]
SeparatePages(content, " ")
[解决办法]
Hashtable myHash= SeparatePages(文章全文内容,当前页码);
string curText=myHash[ "label1 "];//当前页码显示的内容
string curPagePart=myHash[ "label2 "];//页码部分html