通过js实现表格行的上下移动,有两种情况:

1、只对显示层操作(即只针对页面的移动并不更新到数据库)

2、显示层的移动更新到数据库中

下面我分布就这两种方式的实现进行说明(我使用的是jquery easy ui框架)。

只针对显示层的操作

//上移
function MoveUp(gridname) {var selectRow = $("#"+gridname).datagrid('getSelections');//gridname为data-grid的idif(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*/@Transactionalpublic 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 行上移 (数据库)相关推荐

  1. html ul 位置上移,JS移动li行数据,点击上移下移(是位置的互换,不是top的偏移量改变)...

    JS移动li行数据,点击上移下移 * { padding:0; margin:0; } .content {width:500px;margin:20px auto;} #pCon {width:50 ...

  2. html保存table并刷新,js操作 添加删除table行,并进行刷新

    添加行的js如下  table 的id为myTable 添加table的一行内容 function insertRow() { var rowValue = document.getElementBy ...

  3. 用html向表格插入新行,js向table表格中插入添加新行和选择删除行

    js向table表格中插入添加新行和选择删除行-综合特效-网页特效-站长新动力-msxindl.com #tab{ width:50%; } #tab td{ height:2em; text-ali ...

  4. html table 筛选记录,JS实现table表格内针对某列内容进行即时搜索筛选功能

    JS实现table表格内针对某列内容进行即时搜索筛选功能 发布时间:2020-08-29 09:26:37 来源:脚本之家 阅读:103 作者:Marx-link 本文实例讲述了JS实现table表格 ...

  5. jQuery实现表格行上移下移和置顶

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name ...

  6. sql+php修改mysql结构,MSSQL_修改SQL-SERVER数据库表结构的SQL命令附sql命令行修改数据库,具体不废话了,请看下文代码 - phpStudy...

    修改SQL-SERVER数据库表结构的SQL命令附sql命令行修改数据库 具体不废话了,请看下文代码详细说明吧. 向表中增加一个 varchar 列: ALTER TABLE distributors ...

  7. mysql创建表语句 cmd_mysql cmd命令行 创建数据库 表 基础语句

    一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...

  8. Node.js 连接 MySQL 并进行数据库操作 –node.js 开发指南

    Node.js是一套用来编写高性能网络服务器的JavaScript工具包 通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来 ...

  9. JavaScript如何给Table行设置颜色?

    1.首先,在CSS文件中定义要设置的颜色.比如, .resetrowscolor {     background-color: red; } 2.在要显示的页面中引入该CSS文件,比如 <li ...

最新文章

  1. 一个基于组件的动态对象系统
  2. 介绍SLICEM里的LUT如何形成RAM资源
  3. 用python做毕业设计小程序_用Python写一个模拟qq聊天小程序的代码实例
  4. 版本控制系统 之一 概念、分类、常见版本控制系统(CVS、SVN、BitKeeper、Git 等)
  5. MySQL隧道创建方式
  6. android 关于2.2版本之前的流量统计
  7. 起点海外版 Hybrid App-内嵌页优化实践
  8. Pensando Distributed Services Architecture [Pensando 分布式服务架构] - 翻译
  9. C语言const的用法详解
  10. SQLAlchemy 多条件查询
  11. 谷歌大神Jeff Dean领衔,万字展望5大AI趋势
  12. Codeforces Round #529 (Div. 3) D. Circular Dance
  13. 为什么被喷的总是产品经理?
  14. 仿真软件proteus点亮led实验
  15. flyingsaucer转换多个html,用 flying saucer 生成pdf文件 Css及html的问题
  16. 万年历单片机c语言,c51单片机万年历的c程序
  17. 照度计是什么测量原理
  18. Scrum板与Kanban如何抉择?敏捷工具:otmic板与按照mtygdmam
  19. 30天自制操作系统:第一天
  20. 人大金仓数据库-表的定义

热门文章

  1. htcvr设备计算机配置,准备买HTC VIVE了?来测试一下你的电脑配置够不够
  2. css 大图保持宽高比压缩,css 保持宽高比缩放
  3. 计算a b python_你知道Python中a = b和a = a b的结果是不一样的吗?
  4. 从双11看技术趋势:金融行业总动员之阿里金融云
  5. STM32学习之路-感觉自己走到了一个天大的坑里了!
  6. Entity Framework 6 Recipes 2nd Edition(10-3)译 - 返回结果是一个标量值
  7. javadoc时候乱码-编码 GBK 的不可映射字符 - wqjsir的专栏 - 博客频道 - CSDN.NET
  8. 2504(多项式求和)
  9. BugFree2.1.3升级到BugFree3.0.2
  10. apache rewrite 二级域名