ASP.NET 新闻内容怎么实现分页;是这样的我在news.aspx里面放了一个Labe是用来显示新闻内容的。

谢谢了我已经做好了分页
2024-12-15 12:17:37
推荐回答(2个)
回答1:

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("

", start + pagesize); //查找

分页点的位置
if (stat == -1)
stat = articletxt.ToLower().IndexOf("
", start + pagesize); //查找

分页点的位置
if (stat == -1)
stat = articletxt.ToLower().IndexOf("
", start + pagesize); //查找

分页点的位置
}
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 + "[上一页] "; }
else
{
if (pp == 1)
{ html = html + "[上一页] "; }
else
{ html = html + "[上一页] "; }
}
for (int i = 1; i <= pagecount; i++)
{
if (i == pp) //如果是当前页,加粗显示
{ html = html + "[" + i + "] "; }
else
{ html = html + "[" + i + "] "; }
}
if (pp + 1 > pagecount) //显示下一页,方便浏览
{
if (pp == pagecount)
{ html = html + "[下一页] "; }
else
{ html = html + "[下一页]

"; }
}
else
{
html = html + "[下一页]

";
}
}
returnHash["pagetxt"] = html;
return returnHash;
}

#endregion

回答2:

帅哥。。。label控件是不自带分页的。。。
如果想label控件能分页的话,需要自己手动写的

可以参考

http://blog.csdn.net/weizhiai12/article/details/6925162