因为程序是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( "    页次: ") 
.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( "    页次: ") 
.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( "    页次: ") 
.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(); 
}