asp.net mvc基于jQuery+Ajax实现无刷新分页
来源:互联网 发布:微信刷粉丝软件免费 编辑:程序博客网 时间:2024/05/04 17:37
自己写了个采用asp.net mvc框架的Demo,分页功能采用的是jQuery+Ajax实现的无刷新分页。
解决方案思想:页面数据的初始加载和按页加载都是通过ajax来进行,页面分页链接点击后利用ajax技术发送当前页码到后端控制器,后端控制器根据当前页码和设置的pageSize从数据库中取出对应页的数据。后端控制器处理完后利用PartialView方法把数据返回到分部视图中,利用ViewBag来返回当前页码和总记录数和pageSize。ajax通过回调函数把控制器返回的视图加到页面中。
说明:分页具体的分页导航和样式使用了插件。
控制器代码
using _116.Models;using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace _116.Controllers{ public class HomeController : Controller { private DataContext db = new DataContext(); private readonly int pageSize = 3; // // GET: /Home/ public ActionResult Index() { ViewBag.PageSize = pageSize; ViewBag.TotalCount = db.Articles.Count(); return View(); } /// <summary> /// 文章列表,ajax分页 /// </summary> /// <param name="pageIndex"></param> /// <returns></returns> public ActionResult AjaxPaging(int pageIndex = 1) { IQueryable<ArticleModels> articles = db.Articles.OrderByDescending(a => a.ObjectID).Skip((pageIndex - 1) * pageSize).Take(pageSize); ViewBag.PageIndex = pageIndex; return PartialView("IndexArticleList", articles); } }}视图代码
<!--文章列表--> <section id="articleList" class="posts block"></section><!--分页--> <script src="~/common/scripts/kkpager.js"></script> <link href="~/common/pluginCss/kkpager.css" rel="stylesheet" /> <nav id="kkpager" class="posts block pagination"></nav> <!--分页-->
分部视图代码
@model IEnumerable<_116.Models.ArticleModels>@foreach (var item in Model){ <article class="post block"> <!--标题--> <h2 class="h2"> <small><a href="/Article/Details/@item.ObjectID">@Html.DisplayFor(modelItem => item.ObjectTitle)</a></small> </h2> <!--发表时间--> <div class="meta"> <time>@item.CreateTime.ToString("yyyy-MM-dd")</time> <i class="glyphicon glyphicon-eye-open eye"></i> <span>(@item.VisitedCount)</span> </div> <!--摘要--> <div class="content"> <p>@Html.DisplayFor(modelItem => item.ObjectSummary)</p> </div> <!--详细内容链接--> <div class="readMore"><a href="/Article/Details/@item.ObjectID">[继续阅读]</a></div> </article>}<!--分页参数--><input id="pageIndex" type="hidden" value="@ViewBag.PageIndex" />Ajax代码
<script type="text/javascript"> $(function () { //初始加载文章列表数据 GetArticlesData(1); }); //ajax获取文章列表并分页 function GetArticlesData(pageIndex) { var ajaxUrl = '/Home/AjaxPaging?pageIndex=' + pageIndex; var ajaxType = 'post'; var ajaxDataType = 'text'; var sucFun = function (data, status) { if (data == null && status != "success") { alert("获取数据失败!"); return false; } else { $("#articleList").html(data); //移除列表最后一项的底部阴影 $("#articleList").find("article").last().removeClass("block"); //分页 var totalCount = parseInt('@ViewBag.TotalCount'); var pageSize = parseInt('@ViewBag.PageSize'); var totalPages = totalCount % pageSize == 0 ? totalCount / pageSize : (parseInt(totalCount / pageSize) + 1); pagecutforsearch(totalPages, totalCount, $("#pageIndex").val()); } }; //ajax参数设置 var Option = { url: ajaxUrl, type: ajaxType, dataType: ajaxDataType, cache: false, //设置为 false 将不会从浏览器缓存中加载请求信息。 async: true, //(默认: true),所有请求均为异步请求。发送同步请求,请将此选项设置为 false。同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 timeout: 3600, //设置请求超时时间(毫秒)。此设置将覆盖全局设置。 error: function () { }, success: sucFun, beforeSend: function () { } }; $.ajax(Option); return false; } //ajax翻页 function searchPage(n) { GetArticlesData(n); }</script>
2 0
- asp.net mvc基于jQuery+Ajax实现无刷新分页
- Asp.Net分页方法:JQuery插件实现Ajax无刷新分页、AspNetPager分页控件实现分页
- ASP.NET Ajax 实现无刷新分页
- asp.net分页和 jquery ajax 无刷新分页
- asp.net中利用Jquery+Ajax+Json实现无刷新分页
- asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)
- AspNetPager + GridView + ASP.NET AJAX 分页无刷新实现
- Asp.net用ajax技术实现无刷新分页
- 基于ASP的无刷新ajax分页
- Asp.net利用JQuery AJAX实现无刷新评论
- Asp.net + jQuery + jQuery pager plugin + Sql Server 利用Ajax实现真正的无刷新分页浏览
- jQuery+AJAX+Struts实现无刷新分页
- jQuery+AJAX+Struts实现无刷新分页
- jquery ashx实现.net无刷新分页
- asp.net Mvc4 使用ajax结合分页插件实现无刷新分页
- asp.net Mvc4 使用ajax结合分页插件实现无刷新分页
- 黑马程序员之 ASP.NET学习笔记:jquery+ajax无刷新分页代码
- JQuery+Ajax无刷新分页
- spring事务管理
- Canvas画各种图形及控件在屏幕中的坐标-android
- Activity与Fragment的生命周期
- 关于自定义view的思考
- 华为机试---表达式合法判断
- asp.net mvc基于jQuery+Ajax实现无刷新分页
- AFNetworking
- 常用的正则表达式
- util包下的Date与sql包下的时间类型之间的转换
- 解决angularJS在IOS上刷新黑屏的问题
- 【json】json-c接口
- QT图形视图框架(The Graphics View Framework)
- 推荐android网站
- Map接口源码分析