分页

最后更新:2024-04-13 13:49:23 | 状态:未完成

分页有两种场景

  • DataSet内存中分页,参考【DataSet分页
  • 数据库查询分页,不同数据库语法差异不需要关心,在执行SQL时会适配

通常是利用前端提供的参数实现分页查询

DataSet set = service.querys("HR_USER", condition(true));  //这里的true表示需要分页

DataSet set = service.querys("HR_USER", condition(10));  //也可以固定设置每页10条

DataSet set = service.querys("HR_USER",10,19); //查10-19行下标从0开始

condition()由AnylineController提供实现,返回的是ConfigStore对象,通过需要业务Controller继承AnylineController

如果需要从java后台构造分页,可以new DefaultConfigStore()参考【后台构造分页

当前第几页会根据http参数取值

默认的分页参数参考PageNaviConfig配置文件

如:当前页的key、每页多少条、是否允许前端指定每页多少条、最大多少条

注意:
如果需要设置提供每页多少行的参数值
需要开启ConfigTable中的 DEFAULT_VAR_CLIENT_SET_VOL_ENABLE 开关,表示前端是否可设置每页多少条
如果每页超过100行
还要设置DEFAULT_VAR_PAGE_MAX_VOL 表示每页最多可以有多少条(只针对从http传过来的vol,后台设置的不影响)
这两个参数是为了对付爬虫

主要修改的是key这部分
public static String CONFIG_NAME 					= "anyline-navi.xml"			; // 配置文件名称
public static String DEFAULT_KEY_PAGE_ROWS			= "_anyline_page_rows"			; // 设置每页显示多少条的key
public static String DEFAULT_KEY_PAGE_NO			= "_anyline_page"				; // 设置当前第几页的key
public static String DEFAULT_KEY_TOTAL_PAGE			= "_anyline_total_page"			; // 显示一共多少页的key
public static String DEFAULT_KEY_TOTAL_ROW			= "_anyline_total_row"			; // 显示一共多少条的key
public static String DEFAULT_KEY_SHOW_STAT			= "_anyline_navi_show_stat"		; // 设置是否显示统计数据的key
public static String DEFAULT_KEY_SHOW_JUMP			= "_anyline_navi_show_jump"		; // 设置是否显示页数跳转key
public static String DEFAULT_KEY_SHOW_VOL			= "_anyline_navi_show_vol"		; // 设置是否显示每页条数设置key
public static String DEFAULT_KEY_GUIDE				= "_anyline_navi_guide"			; // 设置分页样式的key
public static String DEFAULT_KEY_ID_FLAG 			= "_anyline_navi_conf_"			; // 生成配置文件标识
public static int DEFAULT_VAR_PAGE_DEFAULT_VOL				= 10					; // 每页多少条
public static int DEFAULT_VAR_PAGE_MAX_VOL					= 100					; // 每页最多多少条(只针对从http传过来的vol, 后台设置的不影响)
public static boolean DEFAULT_VAR_CLIENT_SET_VOL_ENABLE		= false					; // 前端是否可设置每页多少条

以下不常用,主要用来生成前端内容
public String STYLE_FILE_PATH 				= ""					; // 样式文件路径 
public String SCRIPT_FILE_PATH 				= ""					; // 脚本文件路径 
 
public String STYLE_BUTTON_FIRST			= "第一页"				; // 第一页 
public String STYLE_BUTTON_PREV				= "上一页"				; // 上一页 
public String STYLE_BUTTON_NEXT				= "下一页"				; // 下一页 
public String STYLE_BUTTON_LAST				= "最后页"				; // 最后页 
public String STYLE_BUTTON_JUMP				= "确定"				; // 跳转到
public String STYLE_LABEL_JUMP				= "转到第"				; // 跳转到 
public String STYLE_LABEL_JUMP_PAGE			= "页"					; // 跳转到 
public String STYLE_LOAD_MORE_FORMAT		= "加载更多"			; // 加载更多
public String STYLE_INDEX_ELLIPSIS			= "..."					; // 下标省略符 
public String STYLE_DATA_EMPTY				= "没有更多内容了"		; // 查询无数据
public String STYLE_PAGE_OVER				= "最后一页了"			; // 最后一页


// 变量 
public int VAR_PAGE_RANGE					= 5										; // 下标数量
public int VAR_PAGE_DEFAULT_VOL				= DEFAULT_VAR_PAGE_DEFAULT_VOL			; // 每页多少条
public int VAR_PAGE_MAX_VOL					= DEFAULT_VAR_PAGE_MAX_VOL				; // 每页最多多少条(只针对从http传过来的vol, 后台设置的不影响)
public boolean VAR_CLIENT_SET_VOL_ENABLE 	= DEFAULT_VAR_CLIENT_SET_VOL_ENABLE		; // 前端是否可设置每页多少条
public boolean VAR_SHOW_STAT				= false					; // 是否显示分布统计 
public boolean VAR_SHOW_JUMP				= false					; // 是否显示跳转 
public boolean VAR_SHOW_VOL					= true					; // 是否显示每页条数设置 
public boolean VAR_SHOW_BUTTON				= true					; // 是否显示上一页下一页button 
public boolean VAR_SHOW_INDEX				= true					; // 是否显示下标
public boolean VAR_AUTO_LOAD				= false					; // 划到最后是否自动加载
public boolean VAR_SHOW_INDEX_ELLIPSIS		= false					; // 是否显示下标省略符 (下标不含第2页或倒数第2页时显示省略号)1 .. 3 4 5 6 7 8 .. 10
public int VAR_CACHE_CONDITION_SECOND 		= 0						; // 缓存查询条件时间(秒)
public boolean VAR_LIMIT_SCOPE				= false					; // 页数超出范围后是否查询最后一页 true:查最后一页 false:按传入参数查询
public String  VAR_FORM_METHOD				= "post"				; 
 
// key 
public String KEY_PAGE_ROWS			= DEFAULT_KEY_PAGE_ROWS			; // 设置每页显示多少条的key
public String KEY_PAGE_NO			= DEFAULT_KEY_PAGE_NO			; // 设置当前第几页的key
public String KEY_TOTAL_PAGE		= DEFAULT_KEY_TOTAL_PAGE		; // 显示一共多少页的key
public String KEY_TOTAL_ROW			= DEFAULT_KEY_TOTAL_ROW			; // 显示一共多少条的key
public String KEY_SHOW_STAT			= DEFAULT_KEY_SHOW_STAT			; // 设置是否显示统计数据的key
public String KEY_SHOW_JUMP			= DEFAULT_KEY_SHOW_JUMP			; // 设置是否显示页数跳转key
public String KEY_SHOW_VOL			= DEFAULT_KEY_SHOW_VOL			; // 设置是否显示每页条数设置key
public String KEY_GUIDE				= DEFAULT_KEY_GUIDE				; // 设置分页样式的key
public String KEY_ID_FLAG 			= DEFAULT_KEY_ID_FLAG			; // 生成配置文件标识
 
 
public int CONFIG_PAGE_VAL_SET_SORT = 1;	// 1:VAR_PAGE_VOL_NUMBERS 2:STYLE_PAGE_VOL  
// 样式html 
public String STYLE_STAT_FORMAT			= "<div class='navi-summary'>共<span class='navi-total-row'>${total-row}</span>条 第<span class='navi-cur-page'>${cur-page}</span>/<span class='navi-total-page'>${total-page}</span>页</div>";	// 统计页数
// 用户选择每页多少条  STYLE_PAGE_VOL与STYLE_PAGE_VOL_NUMBERS 会相互覆盖 (以配置文件后设置的为准) 
// STYLE_PAGE_VOL_INDEX会引用STYLE_PAGE_VOL_CLASS所以要先设置STYLE_PAGE_VOL_CLASS 
public String STYLE_PAGE_VOL			= "<select class='navi-vol-set' id='navi_vol_set_{navi-conf-key}' onchange='_navi_change_vol({navi-conf-key})'><option value='10'>10 条/页</option><option value='20'>20 条/页</option><option value='30'>30 条/页</option><option value='40'>40 条/页</option><option value='50'>50 条/页</option><option value='100'>100 条/页</option></select>"; 
public String VAR_PAGE_VOL_CLASS		= "navi-vol-set"	; 
public String VAR_PAGE_VOL_NUMBERS		= ""				; // 用户选择每页多少条 10, 20, 30, 40, 50, 100 如果设置了此属性将生成"<select class='navi-rows-set'><option value='10'>10 条/页</option>...</select>
	 
// 位置分布 index:下标, stat:统计, jump:跳转到, vol:每页多少条
public String VAR_COMPONENT_LAYOUT		= "${stat}${index}${vol}${jump}";
 
public String EVENT_BEFORE				= ""; 
public String EVENT_AFTER				= ""; 
public String EVENT_REFRESH				= ""; 


最近更新 搜索 提交