zoukankan      html  css  js  c++  java
  • 分页处理

    在实习的时候,用easyUI 框架完成了毕业设计的后台开发,其中用到的最主要的一个功能就是分页显示。当时看着姜师傅之前写的代码,我也仿照这他的写完了,但是到底为什么这样写一点也不知道,现在想想那是虎真是不求甚解,怪不得姜师傅总说我“还不知道它是什么呢,就写!;你要动脑啊!...” 等等一系列的提醒,现在想想人家真是没说错,当时的我就是不求甚解。现在正是参加工作了,现在的项目有个功能用到分页处理,再次静下心来看他们的代码,发现也不是很难看懂,不管怎样,这也算是一种成长吧。

          (1) EasyUI项目的分页:

          首先定义Page类,用于前端modle(模型)展现页面的页面总数,行数,

    public DisplaytagPage<Position> queryPositionInfo(DisplaytagPage dp,Integer p_id,Integer pages,Integer rows){
    		Map<String,Integer>map=new HashMap<String,Integer>();
    		if(p_id!=null && p_id!=0){
    			map.put("p_id",p_id);
    		}
    		if(rows!=null &&rows!=0){
    			map.put("rows",rows);
    		}
    		if(pages!=null&&pages!=0){
    			map.put("pages",(pages-1)*20);
    		}else {
    			map.put("beginrows",0);
    			map.put("endrows",15);
    		}
    		List<Position> list=templateDao.queryPositionShow(map);//传给dao层需要展示页面每页的行数(首次展示的页面)
    		Integer count=templateDao.queryPositionShowCount(map);//查询所有的数据个数
    		dp.setList(list);
    		dp.setFullListSize(list.size());
    		dp.setTotalPages(count);
    		return dp;
    	}
    在查询数据时:

    <span style="white-space:pre">	</span><!--获得页面的每次请求所展现的数据-->
    <span style="white-space:pre">	</span><select id="query_position_Displaytag" resultClass="position" parameterClass="java.util.Map">
    		SELECT * from  k_position  p
    		where 1=1
    		<isNotEmpty prepend="AND" property="p_id">
    			p.p_id=#p_id#
    		</isNotEmpty>
            LIMIT #pages#, #rows#
    	</select>
    <span style="white-space:pre">	</span><!--获得数据的总数-->
    	<select id="query_position_Displaytag_count" resultClass="java.lang.Integer" parameterClass="java.util.Map">
    		SELECT count(p_id) from  k_position  p
    		where 1=1
    		<isNotEmpty prepend="AND" property="p_id">
    			p.p_id=#p_id#
    		</isNotEmpty>   
    	</select>
    以上是分页处理的后台获取数据方式,在前台只要传(Integer rows,Integer page

    $("#tt").datagrid({
    		method:'POST',
    		iconCls:'icon-save',
    		nowrap: true,
    		striped: true,
    		border: true,
    		url: "${pageContext.request.contextPath}/admin/queryAllPositionInfo",
    		rownumbers: true,
    		pagination: true,
    		singleSelect: true,
    		pageList:[5,10,15,20,25],
    		pageSize: 20,
    		queryParams: para,
            height:500,
    		pageNumber: 1,
    		columns:[[
    				 {field:"p_name", title:"职位名称 ",align:"center", getWidth("tt", 0.07)},
    		         {field:"doConfirm", title:"操作", align:"center", getWidth("tt", 0.10),
    		        	 formatter:function(val, data, ind) {
    		        	    var htmls= '<a href="javascript:showChangePositionPage(' + data.p_id + ');">修改</a>   <a href="javascript:delPositionItem(' + data.p_id + ');">删除</a>';
    		             return htmls;
    		         }}
    		         ]]
    		});	

    (2)现在项目的分页处理:

    <1>同样定义页面展示模板 Page: 

    <span style="white-space:pre">	</span>private int pageTotal;		//总页数
    	private int pageSize;		//每页多少数据
    	private int pageNo;		//当前页
    	private int dataTotal;		//总数据条数
    

    <2>前台换给后台:要展示的数据,及请求的页数 (Data data,Page page)

    <3>service层处理,怎样显示:

    判断传入参数若page为空,则显示初始页面(需要设置初始的起始页)ibatis 中的<![CDATA[ and c1.time <= #{userLog.time_end} ]]> 防止不兼容符号,错误识别。

    order by c1.time desc limit #{page.pageSize} offset #{page.pageSize}*(#{page.pageNo}-1)  

    limit使用规范(以后要学)
    <4>Dao层的Map.xml中,order by c1.time desc limit #{page.pageSize} offset #{page.pageSize}*(#{page.pageNo}-1) 

  • 相关阅读:
    主成分分析(PCA)原理及R语言代写实现及分析实例
    R语言代写实现向量自回归VAR模型
    python代写在Keras中使用LSTM解决序列问题
    python代写使用MongoDB,Seaborn和Matplotlib文本分析和可视化API数据
    jl1.如何设置元素的宽高包含元素的边框和内边距
    51.纯 CSS 创作一个雷达扫描动画
    50.1扩展之小球摆动
    50.纯 CSS 创作一个永动的牛顿摆
    4.HTML+CSS制作个月亮
    49.纯 CSS 创作一支诱人的冰棍
  • 原文地址:https://www.cnblogs.com/yeemi/p/7470171.html
Copyright © 2011-2022 走看看