直接奔入主题吧,主要想写的是一个批量删除,如何从前台的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);
}
通过这次参加考试系统的项目,感触最深的就是知识你可能已经学过了,但是你没有办法把它应用到实践中去,所以你只是学过了,而不是学会了,实践才是硬道理啊~~