最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

asp.net利用后台实现直接生成html分页的方法

来源:动视网 责编:小采 时间:2020-11-27 22:38:50
文档

asp.net利用后台实现直接生成html分页的方法

asp.net利用后台实现直接生成html分页的方法:本文实例讲述了asp.net利用后台实现直接生成html分页的方法,是一个比较实用的功能。分享给大家供大家参考之用。具体方法如下: 1.建立存储过程: ALTER procedure [dbo].[p_news_query] @Page int as begin select top 5 new
推荐度:
导读asp.net利用后台实现直接生成html分页的方法:本文实例讲述了asp.net利用后台实现直接生成html分页的方法,是一个比较实用的功能。分享给大家供大家参考之用。具体方法如下: 1.建立存储过程: ALTER procedure [dbo].[p_news_query] @Page int as begin select top 5 new


本文实例讲述了asp.net利用后台实现直接生成html分页的方法,是一个比较实用的功能。分享给大家供大家参考之用。具体方法如下:

1.建立存储过程:

ALTER procedure [dbo].[p_news_query]
@Page int
as
begin
select top 5 new_id,new_title,new_url,new_content_text,create_time,user_name from 
 (select *,ROW_NUMBER() over(order by new_id desc ) as RowNumber from
 (select new_id,new_title,new_url,new_content_text,
 dbo.f_ConvertDate(a.create_time) create_time, b.user_name from xs_new a
 left join xs_users b on b.user_no=a.create_user
)TI 
) A 
 where A.RowNumber>(@Page-1)*5

end

目前实验的是每页5条数据,传入当前页码就可以了

2.前台定义一个div ,用于显示

 <div id="divPage" runat="server" class="divpage">
 </div>

3.后台根据传入参数来拼html

目前是模仿博客园的模式,前后显示5条,多余的加...后到最后一条。具体代码如下:

 StringBuilder sbr = new StringBuilder();
 int ITotalCount = pageLogic.QueryNewsCount();
 int IPage = 1;
 if (Request["p"] != null)
 {
 IPage = Convert.ToInt32(Request["p"]);
 }
 int IPageCount = 5;
 int ITotalPage = ITotalCount / IPageCount;
 if (ITotalCount % IPageCount > 0)
 {
 ITotalPage += 1;
 }

 if (IPage != 1)
 {
 sbr.Append("<a href=\"news.aspx?p=" + (IPage - 1).ToString() + "\">上一页</a>");
 }

 if (ITotalPage <= 10)
 {
 for (int i = 1; i <= ITotalPage; i++)
 {
 if (i == IPage)
 {
 sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\" class=\"pageSelect\">" + i.ToString() + "</a>");
 }
 else
 {
 sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\">" + i.ToString() + "</a>");
 }
 }
 }
 else
 {

 if (IPage - 5 > 2 && IPage + 7 < ITotalPage)//前后都有的
 {
 sbr.Append("<a href=\"news.aspx?p=1\">1</a>...");
 for (int i = IPage - 5; i <= IPage + 5; i++)
 {
 if (i == IPage)
 {
 sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\" class=\"pageSelect\">" + i.ToString() + "</a>");
 }
 else
 {
 sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\">" + i.ToString() + "</a>");
 }

 }
 sbr.Append("...<a href=\"news.aspx?p=" + ITotalPage.ToString() + "\">" + ITotalPage.ToString() + "</a>");

 }
 else if (IPage - 5 <= 2)//前面不够,后面有多余
 {
 for (int i = 1; i <= 10; i++)
 {
 if (i == IPage)
 {
 sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\" class=\"pageSelect\">" + i.ToString() + "</a>");
 }
 else
 {
 sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\">" + i.ToString() + "</a>");
 }
 }
 sbr.Append("...<a href=\"news.aspx?p=" + ITotalPage.ToString() + "\">" + ITotalPage.ToString() + "</a>");
 }
 else if (IPage + 7 >= ITotalPage)//前面多余,后面不足
 {
 sbr.Append("<a href=\"news.aspx?p=1\">1</a>...");
 for (int i = ITotalPage - 10; i <= ITotalPage; i++)
 {
 if (i == IPage)
 {
 sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\" class=\"pageSelect\">" + i.ToString() + "</a>");
 }
 else
 {
 sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\">" + i.ToString() + "</a>");
 }
 }

 }

 }
 if (IPage != ITotalPage)
 {
 sbr.Append("<a href=\"news.aspx?p=" + (IPage + 1).ToString() + "\">下一页</a>");
 }
 divPage.InnerHtml = sbr.ToString();
 rptNews.DataSource = pageLogic.QueryNews(IPage);
 rptNews.DataBind();

4.测试效果如下图所示:

希望本文所述对大家的asp.net程序设计有所帮助。

文档

asp.net利用后台实现直接生成html分页的方法

asp.net利用后台实现直接生成html分页的方法:本文实例讲述了asp.net利用后台实现直接生成html分页的方法,是一个比较实用的功能。分享给大家供大家参考之用。具体方法如下: 1.建立存储过程: ALTER procedure [dbo].[p_news_query] @Page int as begin select top 5 new
推荐度:
标签: html net 分页
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top