业务要求:

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

解决方案:

  由于项目整体已经采用了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. numpy学习笔记(四)

    (1)NumPy - 矩阵库 NumPy 包包含一个 Matrix库numpy.matlib.此模块的函数返回矩阵而不是返回ndarray对象. matlib.empty()返回一个新矩阵,而不初始化 ...

  2. IE8图片上传预览

    $("#smallImg").attr('style', "filter:progid:DXImageTransform.Microsoft.AlphaImageLoad ...

  3. Day74

    Django框架之视图函数(day74)一 作业相关 urlpatterns = [   url(r'^$',views.book),  #根路径,响应到指定视图函数:   .....   url(r ...

  4. Python全栈开发记录_第四篇(集合、函数等知识点)

    知识点1:深拷贝和浅拷贝 非拷贝(=赋值:数据完全共享,内存地址一样,修改一个另一个也变化) 浅拷贝:数据半共享(复制其数据独立内存存放,但是只拷贝成功第一层)像[[1,2],3,4]如果修改列表中列 ...

  5. C# 委托类型及使用

    转载声明:转载本文是为了方便自己查看,有需要的朋友建议查看原文(注:原文中有作者纠正的评论,我没有搬运)原文地址:http://www.cnblogs.com/akwwl/p/3232679.html ...

  6. Sublime Text3使用Package Control 报错There Are No Packages Available For Installation

    转 http://blog.csdn.net/feilong_csdn/article/details/67638660 在使用sublime时,有时候我们希望将代码复制出来后仍然是高亮显示,这样我们 ...

  7. C++中#include<iostream>

    #include 是个包含命令,就是把iostream.h这个文件里的内容复制到这个地方 iostream.h是input output stream的简写,意思为标准的输入输出流头文件.它包含: ( ...

  8. scala 读取保存文件 去除字符特殊

    /** * 读取文件 * @param filename * @return */ def readFormFile(filename: String) = { var ooop = "&q ...

  9. myeclipse2017+ssm+tomcat8+jdk1.8

    练习上手ssm项目 工具:myeclipse2017,spring4,jdk1.8,tomcat8 搭建链接:https://www.cnblogs.com/cuglkb/p/6734666.html ...

  10. python 使用多进程打开多个cmd窗口,并在子进程结束之后关闭cmd窗口

    额,我想表达的是使用os.system()打开另一个可执行文件,然后等待其结束,关闭cmd窗口 主要是我突发奇想想装逼; 如果只是用multiprocessing库的多进程,然后输出信息的话,根本没法 ...