真假分页
来源:互联网 发布:公仔设计软件 编辑:程序博客网 时间:2024/06/09 17:27
引言:
最近的做的积分系统中加载所有的用户时需要进行分页显示,以前在牛腩的时候接触过,在ITOO里面也见过,但是自己去写还是不太会,那就查呗,有两种方式可以实现:真分页、假分页。
假分页:
假分页比较容易实现,代码都写在了js里。
初始化表格显示:
function initTable() { //把搜素框里的内容提交到后台对数据进行过滤。 $('#dg').datagrid({ url: '/frmManageUser/QueryUser', width: "100%", striped: true, //行背景交换 fitColumns: true, idField: 'AssignmentID', loadMsg: '正在加载用户的信息...', pagination: true, singleSelect: false, pageList: [10, 20, 30, 40, 50], //每页多少条数据 pageSize: 10, //默认每页显示10条 pageNumber: 1, //默认为第一页 rowNumbers:true, queryParams: { searchName: $("#searchName").val() }, columns: [[ { field: 'ck', checkbox: true, align: 'left', width: 50 }, { field: 'UserId', title: 'userId', width: 500, hidden: true }, { field: 'UserName', title: '期数', width: 50, editor: 'text' }, { field: 'PassWord', title: '姓名', width: 50, editor: 'text' }, { field: 'TeamNum', title: '小区号', width: 50, editor: 'text' }, ]] }); }
// 分页数据的操作 function pagerfilter(data) { if (typeof data.length == 'number' && typeof data.splice == 'function') { // is array data = { total: data.length, rows: data } } var dg = $(this); var opts = dg.datagrid('options'); var pager = dg.datagrid('getpager'); pager.pagination({ //选择每页显示多少条数据,从第几页开始 onselectpage: function (pagenum, pagesize) { opts.pagenumber = pagenum; opts.pagesize = pagesize; pager.pagination('refresh', { pagenumber: pagenum, pagesize: pagesize }); dg.datagrid("unselectall"); dg.datagrid('loaddata', data); } }); if (!data.originalrows) { data.originalrows = (data.rows); } //从第几条数据开始显示 var start = (opts.pagenumber - 1) * parseint(opts.pagesize); //显示到那条数据 var end = start + parseint(opts.pagesize); data.rows = (data.originalrows.slice(start, end)); return data;}
真分页:
js代码里初始化表格,和上面一样
Controller中查询数据的方法:
/// <summary> /// 查询所有所有的用户 /// </summary> /// <returns>序列化对象</returns> public ActionResult QueryUser() { ManageUserBLL userBll = new ManageUserBLL(); //获得从前台传过来的页数和每页的数量 int pageSize = Request["rows"] == null ? 10 : int.Parse(Request["rows"]); int pageIndex = Request["page"] == null ? 1 : int.Parse(Request["page"]); ////初始设定总页数为0,进行页码总行数查询,查询出来的数据需要赋给total int total = 0; //定义用户的实体集合 List<t_user> listUser = new List<t_user>(); listUser = userBll.QueryUser(pageSize, pageIndex, out total); return Json(new { rows = listUser, total = total, }); }
D层查询:
/// <summary> /// 查询所有的用户 /// </summary> /// <returns>用户泛型集合</returns> public List<t_user> QueryUser(int pagesize, int pagenum,out int total) { string sqlSearch = "select * from t_user order by userId limit @start,@number "; MySqlParameter[] pars = new MySqlParameter[] { new MySqlParameter("@number",pagesize*pagenum), new MySqlParameter("@start",(pagenum-1)*pagesize), }; DataTable dt = MySQLHelper.ExecuteDataTable(sqlSearch,pars); List<t_user> list = MySQLHelper.ConvertToList<t_user>(dt); string sql = "select count(*) from t_user "; total = int.Parse(MySQLHelper.ExecuteScalar(sql).ToString()); return list; }
区别:
真分页: 需要多少数据从数据库中取多少,会多次从库中取。
假分页:一次性从库中取完,再按条件查询。
优缺点:
假分页,如果数据量较多,在首次页面加载的时候会比较慢,严重影响用户体
验,Web开发和搜索引擎优化。
真分页的效率无疑是最高的,它还有很多的优点:
1.每次点击下一页,客户端访问服务器的时间基本一样,提高用户体验,更加的人性化。
2.对于大数据量可以从容的面对。
缺点:与后台的交互次数增多。
0 0
- 真假分页
- 真假分页
- Web之真假分页
- 【牛腩】真假分页
- 【牛腩】真假分页
- 【牛腩】-真假分页
- AspNetPager真假分页
- 我的真假分页
- ASP.NET中的真假分页
- AspNetPager真假分页对比实例
- 【福分系统】EasyUI真假分页
- ASP.NET真假分页—假分页
- ASP.NET真假分页—真分页
- ASP.NET真假分页—假分页
- ASP.NET真假分页—真分页
- EasyUI数据分页实现(真假分页)
- LigerUI真假分页以及过滤查询功能
- ASP.NET——真假分页
- angularJs慕课网提问回答
- Sac·DreamSpace—圣·梦之域 虚拟世界软件开发记录(一)概述
- 全局变量赋值问题
- Spring笔记(第三弹:使用JUnit对Spring工程进行测试)
- 配置ngrok 实现内网穿透
- 真假分页
- 20161211
- java线程池以及newCachedThreadPool使用过程中的问题
- NSDecimalNumber之加减乘除用法(钱计算规则)
- GetComponentsInChildren
- PC端兼容那些事
- 350. Intersection of Two Arrays II#2(Done)
- String源码学习
- Android TextView的marquee跑马灯无效的坑