直接奔入主题吧,主要想写的是一个批量删除,如何从前台的DataGrid中获取相应的ID然后传到后台进行批量删除。
前台DataGrid页面:用EasyUI画的
具体的代码:
前台Js中要写的:
//删除 $("#btn_Remove").unbind("click").click(function destroyExaminee() { //获取选中行数 var rows = $('#dg').datagrid('getSelections'); //判断是否选择行 if (!rows || rows.length == 0) { $.messager.alert('提醒', '请至少要选择一行数据!', 'Info'); return; } //获取表格选择行 var strId; //循环给提交删除参数赋值(考生ID) $.each(rows, function (i, n) { if (i == 0) { strId = "ExamineeId=" + n.ExamineeId; } else { strId += "&ExamineeId=" + n.ExamineeId; } }); //二次确认 $.messager.confirm('提示', '是否删除选中数据?', function (r) { if (!r) { return; } //提交,将获取的数据传到后台 $.ajax({ type: "POST", async: false, url: "/Examinee/DeleteExaminee", data: strId, success: function (data) { var jsondata = eval(data); $('#dg').datagrid('loadData', data); } }); }); });
MVC的Controller中要写的代码:
/// <summary> /// 删除考生信息 /// </summary> /// <param name="iList"></param> /// <returns></returns> public bool DeleteExaminee() { //从前台捕获数据 string strExamineeId = Request.Form["ExamineeId"]; //将捕获的数据转换成数组 string[] listEnExamineeId = strExamineeId.Split(new char[] { ',' }); List<ExamExamineeExamRoomEntity> listExamineeId = new List<ExamExamineeExamRoomEntity>(); //3.把要删除的id 存放到一个 考生实体集合中 for (int i = 0; i < listEnExamineeId.Count(); i++) { string tempStr = listEnExamineeId[i].ToString(); listExamineeId.Add(new ExamExamineeExamRoomEntity()); listExamineeId[i].ExamineeId = tempStr; } //调用服务层的删除方法 bool IsDeleteSuccess = examineeService.DeleteExamineeByExamineeId(listExamineeId); return IsDeleteSuccess; //这里返回的还是在前台选中的数据ID list集合,可以返回其他数据 }
然后是WCF服务层,调用B层的方法
下面是B层的方法
底层框架是已经提前搭好的,该删除是假删除,为了保留学生的考试记录,只是在表中添加了一个删除的标识。
/// <summary> /// 删除考生信息(按考生ID修改考生删除标识)-- 2014-12-16 11:01:52 /// </summary> /// <param name="listExamineeId">考生ID实体集合</param> /// <returns>返回是否删除成功,成功为True,失败为False</returns> public bool DeleteExamineeByExamineeId(List<ExamExamineeExamEntity> listExamineeId) { try { for (int i = 0; i < listExamineeId.Count; i++) { //1.创建删除考生的 实体 规则 ExamExamineeExamEntity tempExaminee = new ExamExamineeExamEntity() { IsDeleteExamineeExam = 1 }; //删除考生 string guid = listExamineeId[i].ExamineeId; this.CurrentDal.Update(tempExaminee, u => u.ExamineeId == guid, "IsDeleteExamineeExam"); } //保存信息,返回True this.DbSession.SaveChanges(); return true; } catch (Exception ex) { //抛出异常 throw (ex); }
通过这次参加考试系统的项目,感触最深的就是知识你可能已经学过了,但是你没有办法把它应用到实践中去,所以你只是学过了,而不是学会了,实践才是硬道理啊~~