最近有一个需求是实现一个表格中记录的上下移动如下图所示
选择其中一项,点击上下移动则则可以对记录上下移动。
这个项目使用的是jsf+hibernate+spring实现的
liteBean中的内容:
/** * 上移一条记录 */ @Action(id = "up", event = "onclick") public void up() { Object[] objs = grid.getSelectedValues(); if (objs == null || objs.length == 0) { Browser.execClientScript("window.alert('请选择一条记录!');"); return; } selectedRowData = objs[0]; DictionaryItem dicItem = (DictionaryItem) selectedRowData; if (null != dictionaryItemService.upExchange(dicItem)) { Browser.alert("第一条不能再上移"); } reload(); } /** * 下移一条记录 */ @Action(id = "down", event = "onclick") public void down() { Object[] objs = grid.getSelectedValues(); if (objs == null || objs.length == 0) { Browser.execClientScript("window.alert('请选择一条记录!');"); return; } selectedRowData = objs[0]; DictionaryItem dicItem = (DictionaryItem) selectedRowData; if (null != dictionaryItemService.downExchange(dicItem)) { Browser.alert("最后一条不能再下移"); } reload(); }
在service层得代码:
@Override public String upExchange(DictionaryItem dicItem) { long order = dicItem.getOrder(); DictionaryItem nextDicItem = dictionaryItemDao.nextItem(order); if(nextDicItem!=null){ long nextOrder = nextDicItem.getOrder(); long number = order; order = nextOrder; nextOrder = number; dicItem.setOrder(order); nextDicItem.setOrder(nextOrder); modify(dicItem); modify(nextDicItem); return null; } return EXCHANG_ERROR; } @Override public String downExchange(DictionaryItem dicItem) { long order = dicItem.getOrder(); DictionaryItem preDicItem = dictionaryItemDao.preItem(order); if(preDicItem!=null){ long nextOrder = preDicItem.getOrder(); long number = order; order = nextOrder; nextOrder = number; dicItem.setOrder(order); preDicItem.setOrder(nextOrder); modify(dicItem); modify(preDicItem); return null; } return EXCHANG_ERROR; }
dao层得代码
@Override public DictionaryItem nextItem(long order) { final long nextOrder = order; final String sql = "from DictionaryItem dictionaryItem where dictionaryItem.order>? order by dictionaryItem.order asc"; return (DictionaryItem) this.getHibernateTemplate().execute( new HibernateCallback() { @Override public DictionaryItem doInHibernate(Session session) throws HibernateException, SQLException { DictionaryItem obj = (DictionaryItem) session .createQuery(sql).setLong(0, nextOrder) .setMaxResults(1).uniqueResult(); return obj; } }); } @Override public DictionaryItem preItem(long order) { final long preOrder = order; final String sql = "from DictionaryItem dictionaryItem where dictionaryItem.order<? order by dictionaryItem.order desc"; return (DictionaryItem) this.getHibernateTemplate().execute( new HibernateCallback() { @Override public DictionaryItem doInHibernate(Session session) throws HibernateException, SQLException { DictionaryItem obj = (DictionaryItem) session .createQuery(sql).setLong(0, preOrder) .setMaxResults(1).uniqueResult(); return obj; } }); }
相关推荐
在写项目的时候,要实现一个数组记录上下移动的示例。写起来也没有没麻烦,无非是交换数组元素。最终实现代码如下,比较重要的是那个函数。 示例代码: // 交换数组元素 var swapItems = function(arr, index1, ...
实例QT程序 —— QTableView 表格行的上下移动 编译可以直接运行。 运行环境WIN10 Qt5.9.7 。 资源为源码压缩包: TableViewMoveRow.rar 相关文章链接如下: ...
DBGrid moved up and down the line of mobile recording. dbgrid 实现上下移动记录的行移动.
cxgrid 拖放移动记录,cxgrid 拖放,cxgrid 拖动记录,cxgrid 鼠标拖动记录 这是cxgrid开发公司回复客户时所发送的源码项目,用于实现鼠标拖动记录,改变记录在表格中的位置,所以直接编译运行,供大家借鉴
代码已示例出cxGrid数据行是如何移动,即将整行记录上移或下移,功能完整,值得拥有。
Delphi中的DBGrid如何实现使用鼠标滚轮上下:首先,往窗体上加入一个ApplicationEvents组件,此组件位于additional选项卡内。
more 和 less 都是从文件文件开头开始,more 可以一次一页浏览文件内容 less 可以利用键盘上的page up 和page down 进行浏览上下滚动 权限 为abc文件设置权限 -rwxrw-r-- -表示文件 后面三个一组,分为三组 rwx...
软件仅含一个加号按钮用于操作此软件的功能,包括(添加记录,添加分组,刷新数据,重置密码,模糊搜索),长按分组可以启动分组管理弹窗,可以对分组进行(改名,删除,上下移动显示顺序)。添加记录可以将账号和...
easyUI datagrid 行上移,下移,置顶,置底的方法
在下面给出的代码中,已经将蛇的速度调整到了一个合适的位置,这样可以确保蛇的移动速度不会过快,同时也能够使得蛇的身体在动画中完整显示出来。大家可以根据自己的需求,进一步调整代码中的速度参数,以达到自己...
对于设计要求中僵尸的特殊移动(撑杆僵尸跳跃和吃到大蒜换行),可以设置一个单独的变量记录特殊移动。 投石僵尸的篮球可以继承子弹类,修改移动方向为向左即可。 每个地块有多个僵尸、商店上下左右选择植物等已...
游戏的初始状态:生成4x4的网格布局(美化后的二维列表),在网格上随机放置两个数字2,提示用户进行操作(上下左右移动或者放弃游戏)。 移动操作会把网格上现有的数字整体移动到碰墙(边界) ,同时根据移动方向,...
4、一次移动操作结束后,如果有方格移动了位置,则在所有值为0的方格中随机的分配一个2/4的值。 5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。 6、2出现的概率为90%,4出现的概率为为10%。 修改...
5.新增定时上下架 6.新增预售功能 7.新增会员专属商品开关 8.新增直播分享功能 9.新增提现方式开关 10.新增一键同步云存储功能 优化: 1.优化商品添加 2.优化商品列表 3.优化后台富文本编辑器 4.优化九宫格抽奖添加...
即上下移动。游戏中还会有静态敌人云、动态的食物、音乐、火箭、鸡肉出现,玩家可以控制小暴龙来躲避敌人或者获取食物,当小暴龙碰到敌人就会失去一条生命;当小暴龙碰到食物时,就会获得一条生命;当小暴龙碰到音乐...
它是将一条小龙放在封闭的空间里面,空间里面会随机出现不同分值的食物,通过按键盘wsda控制蛇向上下左右四个方向移动,龙头碰到食物,则食物被吃掉,龙的身体变长一节,同时记录该食物的分值,然后就会再一次出现...
1. 可以通过键盘中的上下左右控制贪吃蛇移动的方向 2. “START”按钮和“STOP”按钮控制游戏的开始和暂停 3. SCORE栏记录得分 4. 将贪吃蛇的运动区域和按键的功能区域分开 6. 界面美化 报告内容包括: 一、课设...
游戏可以通过对图片文件的读取和加载,从多张图片中选择来进行拼图游戏,通过设置图像块的个数来实现对游戏难易度的调整,最后将游戏完成后所用时间和步数记录到游戏记录中,方便用户查看游戏记录。
玩家可以通过PS2键盘操纵小精灵(用C表示)在分布着大量不同颜色的豆子和红色炸弹的地图中上下左右移动,吃下不同颜色的豆子可以获得不同分数,吃到炸弹则小精灵死亡,本轮游戏结束,游戏自动重新开始。屏幕最上方...