jqwidgets之jqxGrid后台分页排序过滤
来源:互联网 发布:dts hd mac 编辑:程序博客网 时间:2024/05/21 05:42
一、创建一个基本Grid
<div id="grid"></div><script type="text/javascript">$(function(){gridInit();})function gridInit(){var source={//grid数据源属性url:"",datatype:"json",//服务返回的数据类型type:"POST",//默认为GETdata:{},//定义发送到服务器的默认参数processdata:function(data){//对data属性的扩展data.param="abcde";}}$("#grid").jqxGrid({width:"99%",height:"99%", //把<!doctype html> 语句删掉height才会起作用columns:[ //表格列定义 {text:"id",datafield:"id",align:"center",hidden:true},//隐藏列 {text:"姓名",datafield:"姓名",align:"center"} /* text:文本字段(显示的列名) datafield:数据字段 align:列名位置 */],source:new $.jqx.dataAdapter(source)});}</script>
二、后台分页
1、设置分页grid属性
var source={//数据源需要设置两个属性totalrecords:0,//这个可以不要,这里为了说明beforeprocessing: function (data) { //请求后的回调函数,data是查询方法返回的数据<span style="white-space:pre"></span>source.totalrecords = 数据总条数;<span style="white-space:pre"></span>}}$("#grid").jqxGrid({//分页所需属性pageable: true,pagesize:50,//每页显示50条pagesizeoptions:[50,100,200],//可选择每页显示条数//这两个是后台分页所必需的属性,不设置无法跳下一页(我也没搞懂具体含义,复制就行)virtualmode: true, rendergridrows: function(obj) { return obj.data; }});
2、设置分页属性jqxGrid发送两个参数给后台
pagenum : 当前在第几页
pagesize : 当前页显示的数据条数
比如java :
String pagenum=request.getParameter("pagenum"); String pagesize=request.getParameter("pagesize");
三、排序
1、排序属性
var source={//点击表头时排序(必须)sort: function() { $("#grid").jqxGrid('updatebounddata','sort'); }, //默认排序属性(可不写) sortcolumn: 'id', sortdirection: 'asc'}//指定grid表格可排序$("#grid").jqxGrid({ sortable:true});
2、grid会发送两个排序参数给后台
sortdatafield : 排序的字段(datafield值)
sortorder : 排序方式( asc/desc )
默认第一次点击表头sortorder="asc",第二次sortorder="desc",第三次取消排序sortorder=""。可设置sorttogglestates属性改变排序模式
比如java:
String sort=request.getParameter("sortdatafield"); String order=request.getParameter("sortorder");
四、后台过滤
1、过滤属性
var source={ filter: function() { $("#grid").jqxGrid('updatebounddata', 'filter'); }}$("#grid").jqxGrid({filterable: true})设置过滤属性后表头上会出现过滤面板
2、过滤参数非常多,看官网例子吧亲。下面提供一个拼接where条件的java方法(数据库是sql server 2008)
public String getWhereOfFilter(Map<String, String[]> map){// 参数是 request.getParameterMap()//总共有多少个过滤条件(一个过滤面板会有一个或两个过滤条件)Integer filterscount=Integer.valueOf(map.get("filterscount")[0]);StringBuilder where=new StringBuilder();for(int i=0;i<filterscount;i++){//填写的过滤值String filtervalue =map.get("filtervalue" + i)[0].trim();//在过滤面板的条件下拉框选的值String filtercondition =map.get("filtercondition" + i)[0];//当前过滤字段String filterdatafield =map.get("filterdatafield" + i)[0];//当前过滤字段和下一个过滤字段的关系 0为and 1为orString filteroperator =map.get("filteroperator" + i)[0];//假设过滤字段为 filterdatafield为field,过滤值为valueswitch(filtercondition){case "EMPTY": // field is null or field='' where.append(filterdatafield).append(" is null or ") .append(filterdatafield).append("='' "); break;case "NOT_EMPTY":// field is not null or field<>''where.append(filterdatafield).append(" is not null or") .append(filterdatafield).append("<>'' ");break;case "CONTAINS":// field like '%value%'where.append(filterdatafield).append(" like '%") .append(filtervalue).append("%' ");break;case "CONTAINS_CASE_SENSITIVE":// field COLLATE Chinese_PRC_CS_AI like '%value%' 大小写敏感包含where.append(filterdatafield) .append(" COLLATE Chinese_PRC_CS_AI like '%") .append(filtervalue).append("%' ");break;case "DOES_NOT_CONTAIN":// field not like '%value%'where.append(filterdatafield).append(" not like '%") .append(filtervalue).append("%' ");break;case "DOES_NOT_CONTAIN_CASE_SENSITIVE":// field COLLATE Chinese_PRC_CS_AI not like '%value%' 大小写敏感不包含where.append(filterdatafield) .append(" COLLATE Chinese_PRC_CS_AI not like '%") .append(filtervalue).append("%' ");break;case "EQUAL":// field='value'where.append(filterdatafield).append("='").append(filtervalue).append("' ");break;case "EQUAL_CASE_SENSITIVE"://field COLLATE Chinese_PRC_CS_AI = 'value'where.append(filterdatafield).append(" COLLATE Chinese_PRC_CS_AI ='") .append(filtervalue).append("' ");break;case "NOT_EQUAL":// field<>'value'where.append(filterdatafield).append("<>'").append(filtervalue).append("' ");break;case "NOT_EQUAL_CASE_SENSITIVE":// field COLLATE Chinese_PRC_CS_AI <>'value'where.append(filterdatafield).append(" COLLATE Chinese_PRC_CS_AI <>'") .append(filtervalue).append("' ");break;case "GREATER_THAN":// field>'value'where.append(filterdatafield).append(">'").append(filtervalue).append("' ");break;case "LESS_THAN":// field<'value'where.append(filterdatafield).append("<'").append(filtervalue).append("' ");break;case "GREATER_THAN_OR_EQUAL":// field>='value'where.append(filterdatafield).append(">='").append(filtervalue).append("' ");break;case "LESS_THAN_OR_EQUAL":// field<='value'where.append(filterdatafield).append("<='").append(filtervalue).append("' ");break;case "STARTS_WITH":// field like 'value%' where.append(filterdatafield).append(" like '").append(filtervalue).append("%' ");break;case "STARTS_WITH_CASE_SENSITIVE":// field COLLATE Chinese_PRC_CS_AI like 'value%'where.append(filterdatafield).append(" COLLATE Chinese_PRC_CS_AI like '") .append(filtervalue).append("%' ");break;case "ENDS_WITH":// field like '%value'where.append(filterdatafield).append(" like '%").append(filtervalue).append("' ");break;case "ENDS_WITH_CASE_SENSITIVE":// field COLLATE Chinese_PRC_CS_AI like '%value' where.append(filterdatafield).append(" COLLATE Chinese_PRC_CS_AI like '%") .append(filtervalue).append("' ");break;case "NULL":// field is nullwhere.append(filterdatafield).append(" is null ");break;case "NOT_NULL"://field is not nullwhere.append(filterdatafield).append(" is not null ");break;}if("0".equals(filteroperator)){where.append(" and ");}else if("1".equals(filteroperator)){where.append(" or ");}}//删除最末尾的and或orint length=where.length();if(where.lastIndexOf("or")+3==length){where.delete(where.lastIndexOf("or"), length);}else if(where.lastIndexOf("and")+4==length){where.delete(where.lastIndexOf("and"), length);}return where.toString(); }
0 0
- jqwidgets之jqxGrid后台分页排序过滤
- 【jQwidgets】jqxGrid 绑定格式化
- 【用户界面:jQWidgets探索之路系列】之二:jqxGrid
- jqwidgets-jqxgrid实现打印功能
- jqwidgets 国际化- 中文 jqxGrid 中文语言包 gridlocalization
- 【jQWidgets】jqxGrid控件在页面上重新加载的问题
- jqxGrid 之 Default Functionality
- jqWidgets之jqxComboBox级联
- JQWidgets之jqxcalendar
- SPGridView(实现分页,排序,过滤,菜单)
- ECSide基于数据库的分页、排序、过滤
- abp后台分页,排序引用dll说明
- SQL之过滤排序语法
- bootstrap table 后台分页时, 后台传字段排序
- ECSide基于数据库的分页、排序、过滤的实现
- ASP.NET中大量数据的分页、排序与过滤
- ECSide基于数据库的分页、排序、过滤的实现
- MVC中使用EF(3):实现排序,过滤,分页
- 企业管理的笑话,暗藏真理
- STM32_定时器_PWM_笔记
- IDEA Error:java: 未结束的字符串文字
- #define,const ,static 的使用总结
- ch6.正则表达式
- jqwidgets之jqxGrid后台分页排序过滤
- AppCompatActivity的出现
- Java自动内存管理偏爱二
- apache Nifi 概述
- 歪解Runtime
- C++ mutable
- nodejs & npm 在Ubuntu上安装
- 格式化字符串攻击原理及示例
- hdoj 1064 Financial Management (水)