freshwind_li通过本文主要向大家介绍了easyUI,combogrid等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
本篇文章主要记录了combogrid实现分页、动态搜索以及过滤手动输入的实现过程。
(1)关于动态搜索,如果检索关键词为中文,检索过程中出现乱码,可在后台对关键词进行重新编码
if(null!=dataTypeCode) { dataTypeCode=new String((dataTypeCode).getBytes("iso-8859-1"),"utf-8"); }
(2)关于过滤手动输入内容,只有当输入的内容是数据中不存在的项目时才会被过滤掉。
以下js片段是我封装的函数:
function createComboBox(ele){ var selected; //当前选择项 $('.customDataTypeCode:last').combogrid({ panelWidth: 350, fitColumns: true, striped: true, //是否各行变色 editable: true, pagination: true, //是否分页 rownumbers: true, //是否显示行号 collapsible: false, //是否可折叠的 fit: true, //自动大小 method: 'get', idField : 'dataTypeCode', textField : 'dataTypeCode', url : '/ops/dataTypeConfig/findByDataTypeCode2', columns : [ [ { field : 'dataTypeCode', title : '数据类型', width : 50 }, { field : 'remark', title : '备注', width : 50 } ] ], onChange: function () { selected = ele.combogrid('grid').datagrid('getSelected'); }, onSelect: function () { selected = ele.combogrid('grid').datagrid('getSelected'); }, onHidePanel: function () { var editText = $(this).combogrid('getValue'); if (selected == null || selected.dataTypeCode != editText) {//没有选择或者选项不相等时清除内容 $(this).combogrid('setValue', ''); } artChanged = false; selectRow = null; }, keyHandler: { up: function () { //【向上键】押下处理 //取得选中行 var selected = ele.combogrid('grid').datagrid('getSelected'); if (selected) { //取得选中行的rowIndex var index = ele.combogrid('grid').datagrid('getRowIndex', selected); //向上移动到第一行为止 if (index > 0) { ele.combogrid('grid').datagrid('selectRow', index - 1); } } else { var rows = ele.combogrid('grid').datagrid('getRows'); ele.combogrid('grid').datagrid('selectRow', rows.length - 1); } }, down: function () { //【向下键】押下处理 //取得选中行 selected = ele.combogrid('grid').datagrid('getSelected'); if (selected) { //取得选中行的rowIndex var index = ele.combogrid('grid').datagrid('getRowIndex', selected); //向下移动到当页最后一行为止 if (index < ele.combogrid('grid').datagrid('getData').rows.length - 1) { ele.combogrid('grid').datagrid('selectRow', index + 1); } } else { ele.combogrid('grid').datagrid('selectRow', 0); } }, enter: function () { //【回车键】押下处理 //取得选中行 selected = ele.combogrid('grid').datagrid('getSelected'); if (!selected) { ele.combogrid('grid').datagrid('selectRow', 0); } //选中后让下拉表格消失 ele.combogrid('hidePanel'); }, query: function (keyword) { //【动态搜索】处理 //动态搜索 ele.combogrid("grid").datagrid("reload", { 'keyword': keyword }); ele.combogrid("setValue", keyword); //设置查询参数 var queryParams = ele.combogrid("grid").datagrid('options').queryParams; queryParams.dataTypeCode = keyword; ele.combogrid("grid").datagrid('options').queryParams = queryParams; //重新加载 ele.combogrid("grid").datagrid("reload"); ele.combogrid("setValue", keyword); } } }); //取得分页组件对象 var pager = ele.combogrid('grid').datagrid('getPager'); if (pager) { $(pager).pagination({ pageSize: 10, //每页显示的记录条数,默认为10 beforePageText: '第', //页数文本框前显示的汉字 afterPageText: '页 共 {pages} 页', displayMsg: '第{from}-{to}条 共 {total} 条' }); } }
分页和动态搜索参考了下面这位博友的文章:
分页、动态搜索
过滤手动输入参考了这篇文章:
过滤手动输入