最近用到了网页里面表格的每条数据拖拽排序,具体实现原理如下:
前台实现方法,这里主要用到了jquery的拖拽排序组件,比如jqGrid(http://www.trirand.com/blog/),sortable(http://jqueryui.com/sortable/),前台封装的组件用的都是很简单的,在这里就不多总结了,如果想深入研究拖拽的js实现原理,可以查看源码。
后台设计,表中有个rank字段控制排序,每次找最大的一个+1。
当前台列表展示的时候。
将rank字段的附带着在每一个行:
如下:(<input type="hidden" value="${shpvo.rank " />" name="rnk"/>)
本页的默认序列号放入一个数组中:
如下:
var seqlst= [];
$("input[name='rnk']").each(function(idx){
seqlst.push($("input[name='rnk']").eq(idx).val());
})
$("#seqlst").val(seqlst.toString());
当执行拖拽排序的时候,每行存的id并不发生变化,但是从第一行到最后一行依次id顺序重新组成一个新的数组:
var ids = [];
for(var i = 0 , l = $("#ectableArea .zzp-table01-body tbody tr").length;i<l;i++){
ids.push($("#ectableArea .zzp-table01-body tbody tr:eq(" + i + ")").find(".checkbox").attr("id"));
}
以上两步就得到给后台传递的id数组和序号数组:执行ajax和后台交互:
$.ajax({
type: "POST",
url: "${ctx}/ship.do?method=savePageContentSort",
data:{"ids":ids.toString(),"sequence":seq.toString()},
dataType: "text",
timeout :5000,
cache :false,
async: true,
success: function(data){}
})
最后后台处理更新rank,简写实现代码如下:
String[] idList=ids.split(",");
String[] seqList=sequence.split(",");
List<OmShipTypeDO> list=new ArrayList<OmShipTypeDO>();
for(int i=0;i<idList.length;i++){
OmShipTypeDO obj=shipTypeDao.findById(Integer.parseInt(idList[i]));
//id对应的rank进行重置
obj.setRank(Byte.parseByte(seqList[i]));
list.add(obj);
}
shipTypeDao.saveOrUpdateAll(lst);
以上的代码前台后台的写法都是简写,只是为了简易的说明拖拽排序的前台后台交互实现原理。
相关推荐
使用reactjs技术实现列表的拖动排序,在拖动列表的过程终,列表的顺序会发生变化
主要给大家介绍了关于web中拖拽排序和java后台交互实现的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
鼠标拖动,列表排序
这个插件是由苏文博于2015年4月18日在西安开发的基于jquery的图标纵向排序拖放插件,图标可以纵向排序,并且可以类似win7桌面一样,自由拖放。可适用于web桌面的图标操作。
LRC同步、拖动歌词定位、拖动歌曲列表排序、异步添加歌曲等!适合用于音乐网站. 说明: index.htm测试. 播放器文件只有一个:player.htm 需要放在ASP服务器测试,因为有两个ASP文件 openlrcx.asp和openmx.asp文件是...
demo里面只演示了保存拖拽后排序到cookie,预留了接口,可自行js提交保存到数据库,兼容asp、php等全格式。 下载后不要直接双击打开,要传到空间或者在本机搭建web服务,因为cookie直接双击打开是不能运行的。 这段...
拖拽排序组件Github地址:https://github.com/VicEcho/VDraggable.git 因为使用了react.js技术栈,所以封装优先考虑输入和输出。基于数据驱动去渲染页面、控制拖拽元素的顺序。 由于我不考虑兼容IE8等旧版本浏览器,...
摘要:脚本资源,Ajax/JavaScript,拖拽排序 可拖拽排序的框架例子,基于jQuery的拖拽排序实例,鼠标按住选定图片拖放至想要的位置松开鼠标,图片即可自动插入到指定位置,原图片会向后对齐。不个我觉得不错的jQuery...
内容索引:脚本资源,Ajax/JavaScript,表格拖动,表格排序 利用JavaScript实现对表格列的排序,并可以用鼠标拖动列宽,以显示出被遮挡的内容,源代码用到两个JS代码类,可移植操作,重用率高。
这是一个vue,pc端上的局部上下滚动,左右拖动单元格元素组件
drag_and_drop_lists 两级拖放可重新排序列表。特征在多个列表之间重新排序元素重新排序清单从列表外部拖放新元素垂直或水平布局与拖动手柄,长按或短按一起使用展开式清单可用于条子防止单个列表/元素被拖动易于...
安装 npm install 这将安装 ,而又将安装 。 演示版 npm start ...并打开
在web中模拟窗口表格控件,可以用鼠标拖动改变表格列宽,兼容Firefox 3.5和IE6浏览器。
从2008年到2014年使用Web应用程序的大多数UI开发人员肯定使用或至少搜索了实现拖放支持的库。 在那个时期内所有可用的库中, 无疑是最好的选择之一。 多年后,大多数Web应用程序都与框架或渲染库(如Angular,Vue和...
--新增功能:增加分组头设置,支持按字段分组,分组次级排序 --新增功能:增加Avg求平均函数,GroupRowNumber分组行号函数 --新增功能:支持四则运算优先运算 --新增功能:单元格支持拖放调整顺序 --新增功能:新增...
摘要:脚本资源,jQuery,图片...jquery照片拖动排序和删除插件,最好是在火狐或chrome下运行。运行起来后可拖动照片排列起来,按你的布局排列,点击小叉可以删除图片,大概的运行效果看下截图。 运行环境:HTML/PHP/ASP/
今天给大家分享下最近web项目中出现的一个技术难点问题——坐标排序; 如下图所示,要求在前端页面上按顺序将下面5个模块的坐标依次保存至数据库 现在已知信息如下: 1、每个模块分别为一个div 2、每个div可随意...
此文件可以在web前端中实现表格、列表、块元素等的自定义拖拽排序,下载后解压缩,有min版本,具体的可以下载看看
--新增功能:增加分组头设置,支持按字段分组,分组次级排序 --新增功能:增加Avg求平均函数,GroupRowNumber分组行号函数 --新增功能:单元格支持拖放调整顺序 --新增功能:支持四则运算优先运算 --新增功能:新增...
如果您通过拖动来移动书签,建议至少使用45。 不区分大小写:如果启用此选项,将不考虑字母大小写对书签进行排序。 排序依据:指定对书签进行排序的第一个排序标准。 逆序:如果启用此选项,则“排序依据”中指定的...