js 实现 table 行上移 (数据库)
2015-03-17 11:41
176 查看
通过js实现表格行的上下移动,有两种情况:
1、只对显示层操作(即只针对页面的移动并不更新到数据库)
2、显示层的移动更新到数据库中
下面我分布就这两种方式的实现进行说明(我使用的是jquery easy ui框架)。
后台代码:
1、只对显示层操作(即只针对页面的移动并不更新到数据库)
2、显示层的移动更新到数据库中
下面我分布就这两种方式的实现进行说明(我使用的是jquery easy ui框架)。
只针对显示层的操作
//上移 function MoveUp(gridname) { var selectRow = $("#"+gridname).datagrid('getSelections');//gridname为data-grid的id if(selectRow.length!=1){ $.messager.alert("提示","请选择一条数据!"); return false; } var row = $("#"+gridname).datagrid('getSelected'); var index = $("#"+gridname).datagrid('getRowIndex', row); mysort(index, 'up', gridname); } function mysort(index, type, gridname) { if ("up" == type) { //上移 if (index != 0) { //非第一行 var toup = $('#' + gridname).datagrid('getData').rows[index]; var todown = $('#' + gridname).datagrid('getData').rows[index - 1]; $('#' + gridname).datagrid('getData').rows[index] = todown; $('#' + gridname).datagrid('getData').rows[index - 1] = toup; $('#' + gridname).datagrid('refreshRow', index); $('#' + gridname).datagrid('refreshRow', index - 1); $('#' + gridname).datagrid('selectRow', index - 1); } } }
移动发生数据库更新操作
原理:即调换上下两行的位置(在数据库设计一个sort排序字段,发生移动时调换sort的值即可)//上移 function MoveUp(gridname) { var selectRow = $("#"+gridname).datagrid('getSelections'); if(selectRow.length!=1){ $.messager.alert("提示","请选择一条数据!"); return false; } var row = $("#"+gridname).datagrid('getSelected'); var index = $("#"+gridname).datagrid('getRowIndex', row); mysort(index, 'up', gridname); } function mysort(index, type, gridname) { if ("up" == type) { //上移 if (index != 0) { //非第一行 var toup = $('#' + gridname).datagrid('getData').rows[index]; var todown = $('#' + gridname).datagrid('getData').rows[index - 1]; var upId = toup.id; var downId = todown.id; updateSort(upId,downId,gridname); } } } //更新数据库排序 function updateSort(upId,downId,gridname){ $.post(ctx+"/projectPic/updateSort.jhtml", {'upId':upId,'downId':downId} ,function (data) { $("#"+gridname).datagrid('reload');//重新加载数据,刷新窗口 }); }
后台代码:
/** * 修改排序 (sort越大越靠前) * * @param params */ @Transactional public void updateSortById(DynamicParams params) { Long upId = params.getLong("upId"); Long downId = params.getLong("downId"); ProjectPic upProjectPic = this.find(upId); ProjectPic downProjectPic = this.find(downId); Integer upSort = upProjectPic.getSort(); Integer downSort = downProjectPic.getSort(); if (upProjectPic != null) { upProjectPic.setSort(downSort); projectPicDao.update(upProjectPic); } if (downProjectPic != null) { downProjectPic.setSort(upSort); projectPicDao.update(downProjectPic); } }
相关文章推荐
- js 实现table自动排序
- 用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
- js 如何实现对数据库的增删改查
- 原生js实现 table表格列宽拖拽
- JS动态创建Table,Tr,Td并赋值的具体实现
- Js 合并 table 行 的实现方法
- Google BigTable: 数据库实现的典范
- 【转】js操作html的table,包括添加行,添加列,删除行,删除列,合并单元格(未实现)
- jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
- JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
- js实现表格隔行变色,鼠标在该行放上移走的变色效果,还有全选,反选等
- jquery实现table动态添加行、删除行以及行的上移和下移
- node.js---study2 连接池连接数据库实现登录注册查询用户的功能---
- .NET数据库编程求索之路--4.使用ADO.NET实现(三层架构篇-使用Table传递数据)(5)
- JS实现的最简Table选项卡效果
- JS小功能(操作Table--动态添加删除表格及数据)实现代码
- Jquery实现鼠标双击Table单元格变成文本框,输入内容并更新到数据库
- jquery.dad.js实现table的垂直拖拽(并取到当前拖拽对象)
- 可拖动拉伸的左右分栏效果,本例子是用Table以及JS来实现的,左右分栏可改变,拖动中间的边框就可实现宽度的调整,点击时可设置为隐藏左侧列表。
- js实现table排序(jQuery下的jquery.sortElements)