实例:SSH结合Easyui实现Datagrid的批量删除功能
在我先前博客
http://blog.csdn.net/lhq13400526230/article/details/9158111
http://blog.csdn.net/lhq13400526230/article/details/9181601
的基础上面添加批量删除功能。实现的效果如下
删除成功
通常情况下删除不应该真正删除,而是应该有一个标志flag,但flag=true表示状态可见,但flag=false表示状态不可见,为删除状态。便于日后数据库的维护和信息的查询。因此表结构添加一个flag字段
没有改变的代码这里就不写了,发生改变的代码贴出来
1、因为表结构发生变化。所以对应的Student.java和Student.hbm.xml发生改变
var isClickOk=true;//判断的变量$(function() {//datagrid设置参数$('#mydatagrid').datagrid({title : 'datagrid实例',iconCls : 'icon-ok',width : 600,pageSize : 5,//默认选择的分页是每页5行数据pageList : [ 5, 10, 15, 20 ],//可以选择的分页集合nowrap : true,//设置为true,当数据长度超出列宽时将会自动截取striped : true,//设置为true将交替显示行背景。collapsible : true,//显示可折叠按钮toolbar:"#easyui_toolbar",//在添加 增添、删除、修改操作的按钮要用到这个url:'studentallInfo.action',//url调用Action方法loadMsg : '数据装载中......',//singleSelect:true,//为true时只能选择单行 为了实现批量删除必须隐去fitColumns:true,//允许表格自动缩放,以适应父容器sortName : 'studentid',//当数据表格初始化时以哪一列来排序sortOrder : 'asc',//定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。remoteSort : false, frozenColumns : [ [ {field : 'ck',checkbox : true} ] ], pagination : true,//分页rownumbers : true//行数});//当点击添加学生信息的时候触发$("#easyui_add").click(function() { $("#xianshi1").empty();//清除上次出现的图标1$("#xianshi2").empty();//清除上次出现的图标2$('#addDlg').dialog('open').dialog('setTitle', '添加学生信息');//打开对话框 $('#addForm').form('clear');});//当光标移开焦点的时候进行重复验证 $("#studentid").blur(function(){ jQuery.ajax({ //使用Ajax异步验证主键是否重复 type : "post",url : "studentverify.action?table=Student&field=studentid?meter="+$('#studentid').val(),dataType:'json',success : function(s){ if($('#studentid').val()==""){//当为主键为空的时候什么都不显示,因为Easyui的Validate里面已经自动方法限制 } else if( s == "1" )//当返回值为1,表示在数据库中没有找到重复的主键{ isClickOk=true; $("#xianshi1").empty(); var txt1="<img src="+"'imgs/agree_ok.gif'"+"/>";//引入打勾图标的路径 $("#xianshi1").append(txt1);//在id为xianshi1里面加载打勾图标 $("#xianshi2").empty(); $("#xianshi2").append("未被使用");//在di为xianshi2中加载“未被使用”这四个字} else { $("#xianshi1").empty(); isClickOk=false; var txt1="<img src="+"'imgs/agree_no.gif'"+"/>"//引入打叉图标的路径 $("#xianshi1").append(txt1);//在id为xianshi1里面加载打叉图标 $("#xianshi2").empty(); $("#xianshi2").append("已被使用");//在id为xianshi2里面加载“已被使用”四个字 }}});}); /********** 点击删除按钮开始 ***********/$('#deltable').click(function(){var array = $('#mydatagrid').datagrid('getSelections');var id2="";var num=array.length;//获取要删除信息的个数for(var i=0; i<array.length; i++){//组成一个字符串,ID主键之间用逗号隔开if(i!=array.length-1){id2=id2+array[i].studentid+","; }else{ id2=id2+array[i].studentid; } } var selected = $('#mydatagrid').datagrid('getSelected');if (array != "") {$.messager.defaults={ok:"确定",cancel:"取消"}; $.messager.confirm('', '是否要删除该信息?', function(r){if (r){$.post("studentdel.action",{ ids:id2,num:num},function(response){if(response=="-1"){$.messager.alert('操作提示',"删除失败",'error');}else{$('#mydatagrid').datagrid({url:"studentallInfo.action"});$.messager.alert('操作提示',"删除成功",'info');}});}});}else{$.messager.alert('',"请先选择要删除的信息!");}});/********** 删除按钮结束 ***********/});//添加信息点击保存的时候触发此函数function add_ok(){$.messager.defaults={ok:"确定",cancel:"取消"}; $.messager.confirm('Confirm', '您确定增加?', function(r){//使用确定,取消的选择框if (r){$('#addForm').form('submit',{//引入Easyui的Formurl:"studentadd.action",//URL指向添加的ActiononSubmit: function(){if(isClickOk==false){//当主键重复的时候先前就已经被设置为false,如果为false就不提交,显示提示框信息不能重复$.messager.alert('操作提示', '主键不能重复!','error');return false;}else if($('#addForm').form('validate')){//判断Easyui的Validate如果都没错误就同意提交$.messager.alert('操作提示', '添加信息成功!','info');return true;}else{//如果Easyui的Validate的验证有一个不完整就不提交$.messager.alert('操作提示', '信息填写不完整!','error');return false;}}});$('#mydatagrid').datagrid({url:'studentallInfo.action'});//实现Datagrid重新刷新效果$('#addDlg').dialog('close');//关闭对话框 }});}