jquery easyui dataGrid动态改变排序字段名的方法
jQuery EasyUI DataGrid动态排序字段名的处理策略
在Web开发中,jQuery EasyUI DataGrid是一款非常实用的工具,用于展示大量结构化数据并支持多种交互功能,包括排序。当后端实体类的字段与数据库字段不一致时,动态改变排序字段名可能会引发问题。今天,我们以Java为例,深入这个问题及其解决方案。
问题背景:
在使用jQuery EasyUI DataGrid时,我们经常通过点击相应的字段进行排序。假设后端实体类中的属性为userName,前台的字段标识为"userName",而数据库中的实际字段为"user_name"。直接点击排序可能会抛出异常,因为DataGrid会根据字段标识进行排序操作,而非数据库中的真实字段名。
解决方案:
一、后台服务器端处理:
在接收到前台的排序请求时,后台对传入的排序字段进行判断,并手动映射为数据库中的字段名。这种方式的优点是安全性高,数据库字段不会暴露在前台HTML页面中;缺点是后台代码中会出现大量的字段映射判断逻辑。
二、前台处理:
在点击排序字段列的时候,通过JS脚本在前台页面进行映射为数据库中的字段名。这种方式方便快捷,无需修改服务器端代码。但缺点是安全性较低,数据库的真实字段名会暴露在HTML页面中。如果对安全性要求较高,建议选择第一种方式。
具体实现(以前台处理方式为例):
1. 创建字段映射的Map对象,将实体类属性映射为数据库字段。例如:
```javascript
var map = new Map();
map['userName'] = 'user_name';
```
2. 在DataGrid的onBeforeLoad事件中,调用自定义的onSortColumn函数,处理排序字段的映射:
```javascript
$('datagrid').datagrid({
onBeforeLoad: function(param) {
onSortColumn(param, map);
}
});
```
onSortColumn函数的实现如下:
```javascript
onSortColumn = function(param, map) {
// 取出map中字段的映射关系值
var fieldSort = map[param.sort];
if (fieldSort != '' && fieldSort != undefined) {
// 设置新的排序字段名,发送请求时一并发送到服务端
param.sort = fieldSort;
}
}
```
以上即是长沙网络推广给大家介绍的jQuery EasyUI DataGrid动态改变排序字段名的方法。希望对大家有所帮助,如有任何疑问,请随时留言,长沙网络推广会及时回复。感谢大家对狼蚁SEO网站的支持!
编程语言
- jquery easyui dataGrid动态改变排序字段名的方法
- JS设计模式之单例模式(一)
- ThinkPHP多语言支持与多模板支持概述
- js实现3d悬浮效果
- php判断文件上传图片格式的实例详解
- ThinkPHP3.1新特性之对Ajax的支持更加完善
- js调用父框架函数与弹窗调用父页面函数的简单方
- php运行报错Call to undefined function curl_init()的最新解
- nodeJS模块简单用法示例
- asp.net中穿透Session 0 隔离(一)
- 微信小程序如何使用云开发
- Vuejs监听vuex中值的变化的方法示例
- php中文字符串截取方法实例总结
- 小程序tab页无法传递参数的方法
- asp.net中不能在DropDownList中选择多个项 原因分析及
- 微信小程序wx.request实现后台数据交互功能分析