业务要求:

  下拉框做选择时需要展现多个字段供用户参考,由于内容可能会很多,故还需要考虑分页。

解决方案:

  由于项目整体已经采用了EasyUI,在浏览了demo以后,初步考虑使用EasyUI的combogrid。

界面参考:

  

实现细节:

下拉框代码,发现combogrid是继承datagrid的,所以可以使用pagination属性, 

 <select id="leftItem" class="easyui-combogrid" name="leftItem" style=""
data-options="
label: '左侧物料:',
labelWidth:70,
labelPosition: 'left',
loadMsg:'正在查询请稍后......',
panelWidth:500,
panelHeight:500,
delay:600,
width: 200,
value:'',
idField:'itemNumber',
textField:'itemNumber',
rownumbers : true,
mode: 'remote',
pagination:true,
pageSize: 20,
url:'pageItemVersions.do',
onBeforeLoad : beforeLoadFn,
onSelect:gridSelectRow,
columns:[[
{field:'itemNumber',title:'物料编码',width:100},
{field:'itemName',title:'物料名称',width:140},
{field:'version',title:'版本',width:40},
{field:'itemType',title:'类别',width:120},
{field:'lifeCycle',title:'生命周期',width:80}
]]
"></select>
<input id="leftVersion" class="easyui-textbox" data-options="
label: '左侧版本:',
labelWidth:70,
labelPosition: 'left',
prompt: '',
width: 110
" /> <a id="saveBtn" href="#" iconCls="icon-search" style="margin-left: 50px;margin-right: 50px;" class="easyui-linkbutton" onclick="compare()">比较</a>

部分js代码:

 function gridSelectRow(index, row){
$("#leftVersion").textbox("setValue",row.version);
} function rightGridSelectRow(index, row){
$("#rightVersion").textbox("setValue",row.version);
} function beforeLoadFn(param){
if(!param || !param.q){
return false;
}
param.limit = param.rows;
var start = (param.page - 1) * param.rows;
param.start = start;
} $(function() {
if(isLowerIE9()){
alert("建议使用IE10以上或者其他非IE内核浏览器,IE10以下部分功能无法正常使用!");
}
var itemNumber = "${itemNumber}";
if(itemNumber){
$('#leftItem').combogrid("setValue", itemNumber);
var leftGrid = $('#leftItem').combogrid('grid'); // get datagrid object
var result = leftGrid.datagrid('load',{q:itemNumber}); // get the selected row
if(result){ }
}
});

后台Java代码:

@RequestMapping("pageItemVersions.do")
@ResponseBody
public PageEasyUI<ItemVO> pageItemVersions(String q, Pageable pageable) {
PageEasyUI<ItemVO> page = null;
if (StringUtils.isNotBlank(q)) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("itemNumber", q);
page = itemBomService.pageItemVersions(map, pageable);
}
return page;
}

返回值:

public class PageEasyUI<T> {

    /** 汇总 */
private Long total;
/** 内容 */
private List<T> rows; public Long getTotal() {
return total;
} public void setTotal(Long total) {
this.total = total;
} public List<T> getRows() {
return rows;
} public void setRows(List<T> rows) {
this.rows = rows;
} public PageEasyUI() {
} public PageEasyUI(List<T> list) {
super();
this.rows = list;
if (list instanceof Page) {
Page<T> page = (Page<T>) list;
this.total = page.getTotal();
} else {
if (CollectionUtils.isEmpty(list)) {
this.total = 0L;
} else {
this.total = Long.valueOf(list.size());
}
}
}
}

EasyUI ComboGrid 笔记(支持分页)的更多相关文章

  1. 【原】EasyUI ComboGrid 集成分页、按键示例

    需求: 1.下拉框下拉时出现表格: 2.表格带分页功能: 3.可以使用向上键.向下键在表格中移动选择行数据: 4.可以使用回车键在表格中选中行数据: 5.在下拉框的文本框中输入内容,能查询表格: 6. ...

  2. easyui combogrid下拉表格的分页/按键/动态搜索

    作者:xfl4629712  <  easyui combogrid下拉表格的分页/按键/动态搜索  > 需求: 1.下拉框下拉时出现表格: 2.表格带分页功能: 3.可以使用向上键.向下 ...

  3. EasyUI ComboGrid的绑定,上下键和回车事件,输入条件查询

    首先我们先看一下前台的绑定事件 1.先定义标签 <input id="cmbXm" type="text" style="width: 100p ...

  4. SpringMVC结合easyUI中datagird实现分页

    SpringMVC结合easyUI中datagird实现分页 DataGrid以表格形式展示数据,并提供了丰富的选择.排序.分组和编辑数据的功能支持.轻量级,单元格合并.多列标题.冻结列和页脚只是其中 ...

  5. 表单(中)-EasyUI Combogrid 组合网格、EasyUI Numberbox 数字框、EasyUI Datebox 日期框、EasyUI Datetimebox 日期时间框、EasyUI Calendar 日历

    EasyUI Combogrid 组合网格 扩展自 $.fn.combo.defaults 和 $.fn.datagrid.defaults.通过 $.fn.combogrid.defaults 重写 ...

  6. EasyUI 开发笔记(二)

    接上篇 :EasyUI 开发笔记(一)  (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...

  7. ASP.NET 为GridView添加序号列,且支持分页连续累计显示

    为GridView添加序号列,且支持分页连续累计显示,废话不多说,直接上代码: <%@ Page Language="C#" AutoEventWireup="tr ...

  8. [cocos2dx]让CCScrollView支持分页

    [cocos2dx]让CCScrollView支持分页 做过IOS开发的朋友, 肯定知道UIScrollView有一个isPaged属性. 当设置其为true的时候, 滑动会自动分页. 即, 每次滑动 ...

  9. jQuery EasyUI datagrid实现本地分页的方法

    http://www.codeweblog.com/jquery-easyui-datagrid%e5%ae%9e%e7%8e%b0%e6%9c%ac%e5%9c%b0%e5%88%86%e9%a1% ...

随机推荐

  1. JS获取option的value和text

    window.onload = function(){ //首先获得下拉框的节点对象: var select = document.getElementById("s1"); // ...

  2. 基础总结(03)-- css有趣的特性

    1.currentColor:可用于background/border-color/渐变/box-shadow/svg填充色,颜色继承自color. 待补充…

  3. py库:os、shutil、pathlib

    https://www.cnblogs.com/MnCu8261/p/5494807.html shutil模块 http://blog.csdn.net/rozol/article/details/ ...

  4. Django整理1

    基本结构 │ db.sqlite3 ----------sqlie3数据库 │ manage.py │ ├─logres │ │ admin.py 后台,可以用很少量的代码就拥有一个强大的后台. │ ...

  5. SpringMVC参数注解解释

    在Controller的开发中,经常会用到很多注解,下面解释一下关于形参常用注解的一些解释,他们主要是用来接收参数的. @ModelAttribute("vo", ObjectVo ...

  6. 通过shell操作串口

    1. 通过stty工具设置串口参数,例如 stty -F /dev/ttyUSB0 raw speed 9600 -echo min 0 time 10 上例设置了ttyUSB0设备的数据流格式为ra ...

  7. 如何清除保存在IE浏览器上的账号密码

    1,打开浏览器,打开右上角的工具选项,选择Internet选项 2,在‘常规’选项卡中点击“删除”按钮,在弹框中勾选“密码”,选择删除即可.

  8. Win7+ 电脑 休眠 自动唤醒

    https://jingyan.baidu.com/article/3ea51489d905df52e71bba6b.html

  9. idea的maven搭建

    IntelliJ IDEA中创建Web聚合项目(Maven多模块项目) 在file-setting-maven中可以配置自己下载的maven,在自己下载maven目录的config下的setting. ...

  10. 目标检测faster rcnn error == cudaSuccess (2 vs. 0) out of memory

    想尝试 更深更强的网络,或者自己写了一个费显存的层,发现1080 ti的11G显存不够用了,老师报显存不够怎么办? Check failed: error == cudaSuccess (2 vs. ...