asp.net新闻内容分页处理代码(好用)
#region 获取新闻信息
///
/// 根据ID获取新闻信息
///
///
private void GetNewsDesc(string ID)
{
if (!string.IsNullOrEmpty(ID))
{
Hashtable ht = new Hashtable();
NewAuto.Entities.News objNews = new NewAuto.Entities.News();
objNews = DataRepository.NewsProvider.GetById(Convert.ToInt32(ID));
strTitle = objNews.Title;
strDate = objNews.AddDate.ToString();
strHits = objNews.Hits.ToString();
//strContent =substr(objNews.Contents);
ht = SeparatePages(objNews.Contents, page, 600, "newscontent.aspx?id=" + ID);
foreach (Object obj in ht.Keys)
{
//Console.WriteLine("\t{0}:\t{1}", (string)obj, myHT[obj]);
strContent += "" + ht[obj] + "
";
}
//strContent=SeparatePages(objNews.Contents, page, 500, "newscontent.aspx?id=" + ID).Values.ToString();
//更新打开该新闻次数
objNews.Hits = objNews.Hits + 3;
DataRepository.NewsProvider.Update(objNews);
}
}
#endregion
#region 长新闻分页
/**/
///
/// 长内容分页 哈希表需要引用命名空间System.Collections
///
/// 新闻内容
/// 是新闻当前页数
/// 每页显示字符长度
/// 页码链接地址
///
private 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("
帅哥。。。label控件是不自带分页的。。。
如果想label控件能分页的话,需要自己手动写的
可以参考
http://blog.csdn.net/weizhiai12/article/details/6925162