博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Handsontable 的数据保存(增删改查+导出excel)
阅读量:4157 次
发布时间:2019-05-26

本文共 6943 字,大约阅读时间需要 23 分钟。

项目用到handsontable 插件 

根据官网 API写的handsontable初始化, 
数据展示, 
ajax请求, 
参数封装, 
Controller参数接受

全局容器

var AllData = {};var updatelist = [];var delidslist =[];var insertlist=[];

handsontable 的初始化

function onIniHandsonTable(data) {

KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲hot').empty(); …/
}
],
stretchH: ‘all’,
autoWrapRow: true,
rowHeaders: true,
colHeaders : [ ‘ID’, ’ ERSystem ', ’ ConcurSystem ',‘APISystem’,‘MyEven’,‘ExpressSum’,‘TodayDate’,‘EndDate’,‘DelayDay’ ],
columnSorting: true,
contextMenu:true,
sortIndicator: true,
dropdownMenu: [‘filter_by_condition’, ‘filter_by_value’,‘filter_action_bar’],
//dropdownMenu:true,
filters: true,
renderAllRows: true,
search: true,

afterDestroy (){                // 移除事件                 Handsontable.Dom.removeEvent(save, 'click', saveData);                 loadDataTable();             },             beforeRemoveRow:function(index,amount){                 var ids = [];                //封装id成array传入后台                 if(amount!=0){                     for(var i = index;i

删除list封装([ id1,id2,…])

//删除的优先级最高

function delExpressCount (ids){
//传入的ids.length不可能为0
$.each(ids,function(index,id){
if(id!=null){
delidslist.push(id);
}
});
AllData.delidslist=delidslist;
}

删除的优先级别大于更新,如果一条数据被更新了又被删除了,事实上不需要执行更新操作的

//updatelist数据更新function screening(){    if(updatelist.length!=0&&delidslist.lentgh!=0){        for(var i=0;i

更新list封装([{expresscount1},…])

//更新数据

function updateExpressCount(data){
if(JSON.stringify(data) != “{}”){
var flag = true;
//判断记录是否存在,更新数据
$.each(updatelist,function(index,node){
if(node.id==data.id){
//此记录已经有了
flag = false;
//用新得到的记录替换原来的,不用新增
updatelist[index] = data;
}
});
flag&&updatelist.push(data);
//封装
AllData.updatelist=updatelist;
}
}

清空全局容器

clearContainer =function (){

AllData = {};
updatelist = [];
delidslist =[];
insertlist=[];
}

//获得当前时间

function getNowFormatDate() {
var date = new Date();
var seperator1 = “-”;
var seperator2 = “:”;
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = “0” + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = “0” + strDate;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + date.getHours() + seperator2 + date.getMinutes()
+ seperator2 + date.getSeconds();
return currentdate;
}

加载用户数据,并绑定到handsontable

function loadDataTable(){    showWait();     $.ajax({        url:'fillList',        type:'post',        dataType:'json',        success:function(rdata){            closeWait();            var convertData = [];            if (rdata && typeof rdata === "object") {                //重新封装数据,因为时间类型不符合要求                $.each(rdata,function(index,node){                    convertData.push({                        id:node.id,                        myeven:node.myeven,                        expresssum:node.expresssum,                        ersystem:node.ersystem,                        concursystem:node.concursystem,                        apisystem :node.apisystem,                        todaydate :common.timestampToDate(node.todaydate),                        enddate:common.timestampToDate(node.enddate),                        delayday:node.delayday                        });                });                onIniHandsonTable(convertData);            }            else{                $.alert({                    title: '消息提示',                    type: 'red',                    content: '加载数据失败.',                });            }           },        error:function(e,j,t){            closeWait();            $.alert({                title: '错误提示',                type: 'red',                content: '加载数据错误.',            });            console.log('express count/fill error:'+j+','+t);        }    });}

对应的pojo类

public class ExpressCount {

private Integer id;

private Integer ersystem;private Integer concursystem;private Integer apisystem;private Integer myeven;private Integer expresssum;private Date todaydate;private Date enddate;private Integer delayday;private Date createdate;private Integer createuserid;private String createusername;public Integer getId() {    return id;}public void setId(Integer id) {    this.id = id;}public Integer getErsystem() {    return ersystem;}public void setErsystem(Integer ersystem) {    this.ersystem = ersystem;}public Integer getConcursystem() {    return concursystem;}public void setConcursystem(Integer concursystem) {    this.concursystem = concursystem;}public Integer getApisystem() {    return apisystem;}public void setApisystem(Integer apisystem) {    this.apisystem = apisystem;}public Integer getMyeven() {    return myeven;}public void setMyeven(Integer myeven) {    this.myeven = myeven;}public Integer getExpresssum() {    return expresssum;}public void setExpresssum(Integer expresssum) {    this.expresssum = expresssum;}public Date getTodaydate() {    return todaydate;}public void setTodaydate(Date todaydate) {    this.todaydate = todaydate;}public Date getEnddate() {    return enddate;}public void setEnddate(Date enddate) {    this.enddate = enddate;}public Integer getDelayday() {    return delayday;}public void setDelayday(Integer delayday) {    this.delayday = delayday;}public Date getCreatedate() {    return createdate;}public void setCreatedate(Date createdate) {    this.createdate = createdate;}public Integer getCreateuserid() {    return createuserid;}public void setCreateuserid(Integer createuserid) {    this.createuserid = createuserid;}public String getCreateusername() {    return createusername;}public void setCreateusername(String createusername) {    this.createusername = createusername == null ? null : createusername.trim();}

}

参数封装pojo类

public class ExpressCountDataList {

List updatelist;
List insertlist;
List delidslist;

public List
getUpdatelist() { return updatelist;}public void setUpdatelist(List
updatelist) { this.updatelist = updatelist;}public List
getInsertlist() { return insertlist;}public void setInsertlist(List
insertlist) { this.insertlist = insertlist;}public List
getDelidslist() { return delidslist;}public void setDelidslist(List
delidslist) { this.delidslist = delidslist;}

}

Controller接收

/**

* 保存编辑后table数据
* @param AllData(删除,更新,插入)
* @return
*/
@ResponseBody
@RequestMapping("/globalprocess")
public Page globalprocess(@RequestBody ExpressCountDataList AllData){
Page page = new Page();

List
updatelist =AllData.getUpdatelist(); List
insertlist =AllData.getInsertlist(); List
delidslist=AllData.getDelidslist(); //更新 boolean result = expressCountService.globalprocess(updatelist,insertlist,delidslist); if(result == true){ page.setErrorCode(0); page.setSuccess(true); page.setMessage("操作成功"); }else{ page.setErrorCode(0); page.setSuccess(true); page.setMessage("操作失败"); } return page;}

转载地址:http://gezxi.baihongyu.com/

你可能感兴趣的文章
【Python基础4】for循环、while循环与if分支
查看>>
【Python基础6】格式化字符串
查看>>
【Python基础7】字典
查看>>
【Python基础8】函数参数
查看>>
【Python基础9】浅谈深浅拷贝及变量赋值
查看>>
Jenkins定制一个具有筛选功能的列表视图
查看>>
【Python基础10】探索模块
查看>>
【Python】将txt文件转换为html
查看>>
[Linux]Shell脚本实现按照模块信息拆分文件内容
查看>>
idea添加gradle模块报错The project is already registered
查看>>
在C++中如何实现模板函数的外部调用
查看>>
在C++中,关键字explicit有什么作用
查看>>
C++中异常的处理方法以及使用了哪些关键字
查看>>
内存分配的形式有哪些? C++
查看>>
什么是内存泄露,如何避免内存泄露 C++
查看>>
栈和堆的空间大小 C++
查看>>
什么是缓冲区溢出 C++
查看>>
sizeof C++
查看>>
使用指针有哪些好处? C++
查看>>
引用还是指针?
查看>>