分页
最后更新: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 = "";