EasyUi+MVC+WCF 删除信息--考试系统

      直接奔入主题吧,主要想写的是一个批量删除,如何从前台的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);
            }  

     通过这次参加考试系统的项目,感触最深的就是知识你可能已经学过了,但是你没有办法把它应用到实践中去,所以你只是学过了,而不是学会了,实践才是硬道理啊~~

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。