文章内容分页

因为程序是C#.net编写的,关于C#如此的例子、资料网上一点也找不到;所以只好从程序结构开始分析,一点程序却用了半天的时候完成,汗颜!不足之处,请大家指点,有什么更好的方法请告知。

显示内容部分:

作者:福星
//定义变量
int i,start,stop,t,stat,statt,pp,pagecount,pagesize;
//变量初始值
stat=0;
statt=0;
start=0;//开始查询的字符串位置,初始为0
stop=0;
pagesize=2000;//定义每页至少显示字符串数
pagecount=0;

//获得当前的页数
pa=Request.Params["page"];
if(pa=="" || pa==null)
pa="1";
pp=Convert.ToInt32(pa);

//获得内容
articletxt=rs["contenttxt"].ToString();

//判断页面的内容长度是否大于定义的每页至少显示字符串数
if(articletxt.Length>=pagesize)//如果大于字符串数,则我们可以分页显示
{
t=articletxt.Length/pagesize;//获得大致的总页数
//根据目前获得的页数循环
for(i=0;i<t;i++)
{
//如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找
if(start+pagesize<articletxt.Length)
{
stat=articletxt.IndexOf("</P>",start+pagesize);//查找</P>分页点的位置
if(stat<=0)//如果找不到
stat=articletxt.IndexOf("</p>",start+pagesize);//查找</p>分页点的位置;这里您可以自己设置分页点的判断
}
if(stat<=0)//如果找不到分页点,说明不能分页,也就不需要做其他的劳动了;否则,就进行分页
articletext=articletxt;//将结果付给要导出的变量
else
{
stop=stat;//分页点的位置也就作为这一页的终点位置
if(start+pagesize>=articletxt.Length)//如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点
stop=articletxt.Length;
if(pp==i+1)//如果是当前,那么输出当前页的内容
articletext=articletxt.Substring(start,stop-start);//取内容的起始位置到终点位置这段字符串输出
start=stat;//将终点位置作为下一页的起始位置
pagecount++;//获得实际页总数
}
}
}

分页部分(这里就简单多了)


string html;//定义分页代码变量
if(pagecount>1)//当页数大于1的时候我们显示页数
{
for(i=1;i<=pagecount;i++)
{
if(i==pp)//如果是当前页,加粗显示
html+="<b>["+i+"]</b> ";
else
html+="<a href=?id="+articleid+"&page="+i+">["+i+"]</a> ";
}
if(pp+1>pagecount)//显示下一页,方便浏览
html+="<a href=?id="+articleid+"&page="+(pagecount)+">[下一页]</a></p>";
else
html+="<a href=?id="+articleid+"&page="+(pp+1)+">[下一页]</a></p>";
}

******************************************************************************************************************************************************************************************
private   void   PageDisplay()
{
SqlConnection   conn   =   new   SqlConnection();
SqlCommand   cmd   =   new   SqlCommand();
SqlDataAdapter   sda   =   new   SqlDataAdapter();
DataSet   ds   =   new   DataSet();
DataTable   dt   =   new   DataTable();

conn.ConnectionString   =   "server=.;pwd=sa;uid=sa;database=Northwind ";
cmd.Connection   =   conn;
cmd.CommandText   =   "select   OrderId,EmployeeID,OrderDate,RequiredDate,ShippedDate   from   orders ";
sda.SelectCommand   =   cmd;
sda.Fill(ds, "Em ");
dt   =   ds.Tables[0];


nRecCount   =   dt.Rows.Count;
StringBuilder   sb   =   new   StringBuilder( " ");

if(nRecCount   >   0)
{
PageCount   =   nRecCount   /   10;
if(nRecCount   /   10   >   0)
{
PageCount++;
}
if(this.Request.QueryString[ "page "]   ==   null)
{
nPage   =   1;
}
else
{

this.nPage   =   int.Parse(this.Request.QueryString[ "page "]);

}if(this.nPage   <   1)
{
nPage   =   1;
}
if(this.nPage   >   this.PageCount)
{
this.nPage   =   this.PageCount;
}

if(nPage   ==   1)
{
sb.Append( " <a   href= 'WebForm1.aspx?page=1 '> 首页 </a> ")
.Append( " <a   href= 'WebForm1.aspx?page= ")
.Append(nPage   +   1)
.Append( " '> 下一页 </a> ")
.Append( " <a   href= 'WebForm1.aspx?page= ")
.Append(PageCount)
.Append( " '> 尾页 </a> ")
.Append( "&nbsp;&nbsp;&nbsp;&nbsp;页次: ")
.Append(nPage.ToString())
.Append( "/ ")
.Append(PageCount.ToString())
.Append( " <br/> ");
}
else  
if(nPage   ==   PageCount)
{
sb.Append( " <a   href= 'WebForm1.aspx?page=1 '> 首页 </a> ")
.Append( " <a   href= 'WebForm1.aspx?page= ")
.Append(nPage   -   1)
.Append( " '> 上一页 </a> ")
.Append( " <a   href= 'WebForm1.aspx?page= ")
.Append(PageCount)
.Append( " '> 尾页 </a> ")
.Append( "&nbsp;&nbsp;&nbsp;&nbsp;页次: ")
.Append(nPage.ToString())
.Append( "/ ")
.Append(PageCount.ToString())
.Append( " <br/> ");
}
else
{
sb.Append( " <a   href= 'WebForm1.aspx?page=1 '> 首页 </a> ")
.Append( " <a   href= 'WebForm1.aspx?page= ")
.Append(nPage   -   1)
.Append( " '> 上一页 </a> ")
.Append( " <a   href= 'WebForm1.aspx?page= ")
.Append(nPage   +   1)
.Append( " '> 下一页 </a> ")
.Append( " <a   href= 'WebForm1.aspx?page= ")
.Append(PageCount)
.Append( " '> 尾页 </a> ")
.Append( "&nbsp;&nbsp;&nbsp;&nbsp;页次: ")
.Append(nPage.ToString())
.Append( "/ ")
.Append(PageCount.ToString())
.Append( " <br/> ");
}
this.Response.Write(sb);

int   Start   =   10   *   (nPage   -1);
int   End   =   Start   +   10   -1;
if(End   >   nRecCount   -1   )
{
End   =   nRecCount   -1;
}
this.Response.Write( " <table   border   = '1 '   cellpadding   =   '0 '   cellspaceing   =   '0 '   style   =   'bordercollapse:collapse 'bordercolor   = '#111111 '   bgcolor   =   '#ffffff '> <tr> ");
this.Response.Write( " <td> OrderId </td> <td> EmployeeID </td> <td> OrderDate </td> <td> RequireDate </td> <td> ShippedDate </td> </tr> ");

sb.Remove(0,sb.Length);

for(int   i   =   Start;   i   <=   End;   i++)
{
sb.Append( " <tr> ");
for(int   j   =   0;j   <   5;j++)
{
sb.Append( " <td> "   +   dt.Rows[i][j].ToString()   +   " </td> ");
}
sb.Append( " </tr> ");
}
sb.Append( " </table> ");
this.Response.Write(sb);
}
conn.Close();
}

你可能感兴趣的:(分页)