前端框架Easey UI(二)表格控件的查找与删除操作消息提示对话框
2017-08-18 09:35
656 查看
全查
将后台所有的数据传播的前台,在之前hibernate和struts整合获取到数据的基础上,只需将访问时的路径设置到表格控件的url属性中,
同时保证表格的列属性field的值与后台模型(实体类)的属性值一致即可。
分页查询
在service写方法统计后台的数据的条数,返回值是int类型,但是调用dao层的方法返回值是Object,Object不能直接转成int类型因此先转成long再次转成int类型。
该框架分页时前台有两个参数,在控制器中为接收参数定义两个integer类型的变量、并书写其set、get方法。该方法中有两个内容都要传送到前台且要转成Json格式,因此用map集合将两个参数写入,要与前台框架进行配合map的键必须是下面写的值,不能随便写。数据库的分页从0开始,前台从1开始,因此在传参时需要注意数值差。
如果想对数据库中的值在前台显示时进行转变,例如性别在数据库中存的是0和1,想要在页面显示男女,需要在控制器中对查询出来的值依次遍历,根据值进行判断和修改,判断要写成并列的,每个判断用一条if语句。
条件查询
在之前的网页上点击查询按钮,可以按照输入框中的内容进行查询,为按钮添加点击事件,运用id选择器拿到表格,配置load或者reload方法(该框架的方法都是通过配置),方法的参数通过id选择器获取对应标签的值,select标签的值因用到框架的自定义组合框,不能通过val()得到其中的值,需要用该控件的getValue方法得到。
load和reload方法区别
修改service层,新添加参数获取前台数据,对前台传来的数据进行判断,在数据有值时将其附加到HQL语句中。
控制器层新建成员变量,属性名与前台方法的参数名一致,并创建其对应的set、get方法。
为什么前台数据传到后台没有乱码:strut内置的过滤器可以处理乱码问题。
删除
getSelections: none 返回所有被选择的行,当没有记录被选择时,将返回一个空数组。
为删除按钮添加事件,调用getselections方法,根据该方法返回值的长度判断有没有行被选中,没有数据时提示选择数据,为了方便查询,只传数组中的id值,循环遍历返回的数组获取拿其id值。调用getJSON第一个参数跳转到哪里,第二个参数是传给后台的值,第三个参数是一个方法,根据返回值判断是否删除成功,成功后重新刷新表格,不成功给出提示。
service层创建对应的方法,通过id获取到要删除的对象,在调用删除方法删除该对象。
控制器层,数组不能通过模型装配装,也不能通过list集合,因此用
循环获取到的参数,并将参数转换为integer类型来调用service层的方法。
消息提示对话框
在帮助文档中窗口的消息窗体中可以找到,都是方法,在自己需要的地方直接拿去用,如在删除成功后显示,如何书写本文不做讲述,自己去帮助文档中查询即可。
在是否确认删除是,运用确认对话框,当在弹出的对话框中选择取消时,选中的内容需要回滚,不调用后台完成该功能,需要用表格的unselectAll方法将选择的行取消。
unselectAll none 取消选择所有页面的行
将后台所有的数据传播的前台,在之前hibernate和struts整合获取到数据的基础上,只需将访问时的路径设置到表格控件的url属性中,
同时保证表格的列属性field的值与后台模型(实体类)的属性值一致即可。
$("#dg").datagrid({ url : 'userAction!findUserWithPage', columns : [ [ { field : 'id', title : '用户ID', width : 80, checkbox : true, align : 'center' }] ] }) })
分页查询
在service写方法统计后台的数据的条数,返回值是int类型,但是调用dao层的方法返回值是Object,Object不能直接转成int类型因此先转成long再次转成int类型。
public static int getUserCount(){ Object obj=BaseDao.getObject("select count(*) from User"); long count=(Long)obj; return (int)count; }
该框架分页时前台有两个参数,在控制器中为接收参数定义两个integer类型的变量、并书写其set、get方法。该方法中有两个内容都要传送到前台且要转成Json格式,因此用map集合将两个参数写入,要与前台框架进行配合map的键必须是下面写的值,不能随便写。数据库的分页从0开始,前台从1开始,因此在传参时需要注意数值差。
public void findUserWithPage()throws Exception{ List<User> list=UserService.findUserWithPage((page-1)*rows, rows); int count=UserService.getUserCount(); Map<String, Object> data=new HashMap<String,Object>(); data.put("rows", list); data.put("total", count); toJSON(data); }
如果想对数据库中的值在前台显示时进行转变,例如性别在数据库中存的是0和1,想要在页面显示男女,需要在控制器中对查询出来的值依次遍历,根据值进行判断和修改,判断要写成并列的,每个判断用一条if语句。
for (User user : list) { if ("1".equals(user.getSex())) { user.setSex("男"); } if ("0".equals(user.getSex())) { user.setSex("女"); } }
条件查询
在之前的网页上点击查询按钮,可以按照输入框中的内容进行查询,为按钮添加点击事件,运用id选择器拿到表格,配置load或者reload方法(该框架的方法都是通过配置),方法的参数通过id选择器获取对应标签的值,select标签的值因用到框架的自定义组合框,不能通过val()得到其中的值,需要用该控件的getValue方法得到。
$(function() { $("#searchBut").click(function(){ $("#dg").datagrid('reload',{ usex: $("#sex").combobox('getValue'), userName:$("#username").val() }) })
load和reload方法区别
load param 载入并显示第一页的记录,如果传递了'param'参数,它将会覆盖查询参数属性的值。通过传递一些参数,通常做一个查询,这个方法可以被称为从服务器加载新数据。 $('#dg').datagrid('load',{ code: '01', name: 'name01' }); reload param 重载记录,跟'load'方法一样但是重载的是当前页的记录而非第一页。
修改service层,新添加参数获取前台数据,对前台传来的数据进行判断,在数据有值时将其附加到HQL语句中。
public static List<User>findUserWithPage(int page,int rows,String sex, String userName){ StringBuffer HQL =new StringBuffer("from User where 1=1"); if(!"".equals(sex)&&sex!=null){ HQL.append(" and sex='"+sex+"'"); } if(!"".equals(userName)&&userName!=null){ HQL.append(" and username like '%"+userName+"%'"); } return (List<User>) BaseDao.findWithPage(HQL.toString(), page, rows); }
控制器层新建成员变量,属性名与前台方法的参数名一致,并创建其对应的set、get方法。
为什么前台数据传到后台没有乱码:strut内置的过滤器可以处理乱码问题。
删除
getSelections: none 返回所有被选择的行,当没有记录被选择时,将返回一个空数组。
为删除按钮添加事件,调用getselections方法,根据该方法返回值的长度判断有没有行被选中,没有数据时提示选择数据,为了方便查询,只传数组中的id值,循环遍历返回的数组获取拿其id值。调用getJSON第一个参数跳转到哪里,第二个参数是传给后台的值,第三个参数是一个方法,根据返回值判断是否删除成功,成功后重新刷新表格,不成功给出提示。
$("#removeBut").click(function(){ if($("#dg").datagrid('getSelections').length==0){ alert('请选择删除数据'); } else{ var ids=[]; var array=$("#dg").datagrid('getSelections'); for(var i in array){ ids.push(array[i].id); } $.getJSON("userAction!delUserInfoById",{"id[]":ids},function(flag){ if(flag){ alert('删除数据成功') $("#dg").datagrid('reload') }else{ alert('删除数据失败') } }) } })
service层创建对应的方法,通过id获取到要删除的对象,在调用删除方法删除该对象。
public static boolean delUserInfo(Integer id){ User user=(User) BaseDao.getObject("from User where id="+id); try { BaseDao.deleteObj(user); return true; } catch (Exception e) { e.printStackTrace(); return false; } }
控制器层,数组不能通过模型装配装,也不能通过list集合,因此用
getRequest().getParameterValues("id[]");获取,参数是前台传参时的参数名称,
循环获取到的参数,并将参数转换为integer类型来调用service层的方法。
public void delUserInfoById() throws Exception{ boolean flag=false; String ids[]=getRequest().getParameterValues("id[]"); if(ids.length>0){ for (String string : ids) { flag=UserService.delUserInfo(Integer.parseInt(string)); } } toJSON(flag); }
消息提示对话框
在帮助文档中窗口的消息窗体中可以找到,都是方法,在自己需要的地方直接拿去用,如在删除成功后显示,如何书写本文不做讲述,自己去帮助文档中查询即可。
在是否确认删除是,运用确认对话框,当在弹出的对话框中选择取消时,选中的内容需要回滚,不调用后台完成该功能,需要用表格的unselectAll方法将选择的行取消。
unselectAll none 取消选择所有页面的行
$.messager.confirm('删除确认', '是否确认删除', function(r){ if (r){ $.getJSON("userAction!delUserInfoById", { "id[]" : ids }, function(flag) { if (flag) { alert('删除数据成功') $.messager.show({ title : '消息提示', msg : '删除成功', timeout : 5000, showType : 'slide' }); $("#dg").datagrid('reload') } else { alert('删除数据失败') } }) }else { $("#dg").datagrid('unselectAll'); } });
相关文章推荐
- MFC之对话框程序界面控件提示信息操作CToolTipCtrl
- 前端框架 jQuery EasyUI(一)源码包、两种方式声明表格控件
- JavaFX表格控件TableView高级应用:自动添加ID列、删除操作列、单元格内容个性化渲染
- 详解能在多种前端框架下使用的表格控件
- 消息提示类控件之Dialog(对话框)
- GridView控件删除行的操作提示及自定义数据行的代码实现
- ASP.net 中关于控件Treeview的操作------ 节点查找、删除和添加
- bootstrap前端框架使用modal弹出框form表单submit操作后解决页面提示不显示
- 消息提示类控件之其他几种常用对话框基本使用
- js 对表格的动态操作(动态添加行,删除该行,在指定位置添加控件)
- 能在多种前端框架下使用的表格控件
- DHTMLX 前端框架 建立你的一个应用程序 教程(十一)--添加/删除表格中的记录
- js 对表格的动态操作(动态添加行,删除该行,在指定位置添加控件)
- 查找二叉树删除节点的操作
- 快速开发框架Afinal的使用(数据库操作,HTTP请求,网络图片加载,控件绑定)
- 跳表(Skip List)的介绍以及查找插入删除等操作
- C语言链表的创建、插入、查找、删除、清空操作
- 单链表的各种操作(建立,查找,删除,插入,归并等)
- 工具栏上创建ComboBox组合框控件,框架响应消息(一)之后续:用列表项控制工具栏上的按纽
- 删除操作 弹框提示