1.前台js

 $().ready(function () {

     $('[name="checkAll"]').click(function () {
if ("checked" == $('input[name="checkAll"]').attr("checked")) {
$('input[type="checkbox"]').attr("checked", "checked");
} else {
$('input[type="checkbox"]').removeAttr("checked");
}
}); $('input[name="btnDelete"]').click(function () {
var checkCount = 0; $('input[type="checkbox"]').not('input[name="checkAll"]').each(function (index, element) {
if ("checked" == $(this).attr("checked")) {
checkCount++;
}
}); if (checkCount <= 0) {
alert("请选择您要删除的数据!");
return false;
} if (confirm("确定要删除吗?")) {
var data = "["; $('input[type="checkbox"]').not('input[name="checkAll"]').each(function (index, element) {
if ("checked" == $(this).attr("checked")) {
data += "{id : " + $(this).val() + "} ,";
}
}); if (data != "[") {
data = data.substring(0, data.length - 1) + "]"; $.post("/User/DeleteById", data, function success(result) {
//1.ajax返回单个字符串内容
//var msg = " <font style='color:red'>" + result + "</font>";
//if ($('#ajaxMsg').html() == '') {
// $('#ajaxMsg').append(msg);
//} //2.ajax返回多个字符串内容
var msg = " <font style='color:red'>删除成功!</font>";
if ($('#ajaxMsg').html() == '') {
$('#ajaxMsg').append(msg);
} $('input[name="checkAll"]').removeAttr("checked"); $('input[type="checkbox"]').not('input[name="checkAll"]').each(function (index, element) {
$(this).parent().parent().remove();
}); var ajaxResult = $.parseJSON(result);
$.each(ajaxResult, function (index, element) {
var tr = "<tr>"
+ "<td><input type='checkbox' value='" + element.ID + "' /></td>"
+ "<td><a href='/User/Detail/" + element.ID + "'>" + element.UserName + "</a></td>"
+ "<td>" + element.Phone + "</td>"
+ "<td>" + element.Email + "</td>"
+ "<td>" + element.Address + "</td>"
+ "<td>" + element.CreateTime + "</td>"
+ "<td>" + element.UpdateTime + "</td>"
+ "<td><a href='/User/Edit/" + element.ID + "'>修改</a></td>"
+ "<td><a href='/User/Delete/" + element.ID + "'>删除</a></td>"
+ "</tr>";
$('table').append(tr);
});
});
}
}
});
});

2.后台代码:

[HttpPost]
public ActionResult DeleteById()
{
String ajaxId = Request.Params[]; JavaScriptSerializer js = new JavaScriptSerializer();
List<AjaxReq> ajaxReqList = js.Deserialize<List<AjaxReq>>(ajaxId);
if (null != ajaxReqList && < ajaxReqList.Count())
{
foreach (AjaxReq ajaxReq in ajaxReqList)
{
UserDto user = new UserDto();
user.ID = ajaxReq.ID;
db.Entry<UserDto>(user).State = System.Data.EntityState.Deleted;
db.SaveChanges();
}
} List<UserDto> userList = db.Users.ToList(); //1.ajax返回单个字符串内容
//return base.Json("删除成功!"); //2.ajax返回多个字符串内容
return base.Json(js.Serialize(userList)); }

ajax删除DB数据的更多相关文章

  1. 一般删除网页数据和jquery下使用Ajax删除数据的区别

    1. 一般删除网页数据 就是指用户在点击删除的时候,会跳转到DeleteUser.ashx一般处理程序中,并且通过get传参的方式传递一个id的参数,然后在后台处理 <a href='Delet ...

  2. MVC使用jQuery.ajax()删除数据

    jQuery.ajax()可以简写为$.ajax().以前有写过MVC删除的实现,如<MVC实现删除数据库记录> http://www.cnblogs.com/insus/p/336804 ...

  3. python 全栈开发,Day75(Django与Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传,SweetAlert插件)

    昨日内容回顾 基于对象的跨表查询 正向查询:关联属性在A表中,所以A对象找关联B表数据,正向查询 反向查询:关联属性在A表中,所以B对象找A对象,反向查询 一对多: 按字段:xx book ----- ...

  4. Django与Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传,SweetAlert插件

    一.Django与Ajax AJAX准备知识:JSON 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻 ...

  5. 用Ajax删除的做法

    一般程序文件代码 using System;using System.Web;using System.Linq;using System.Data.Linq; public class Shanch ...

  6. 通过Transaction Log(fn_dblog)取回被删除的数据

    最近跟 James 讨论为何「ApexSQL Log」这个工具可以读到被删除的数据呢? 原来它是透过 Transaction Log 来读取数据的! 于是透过 Transaction Log 到网络上 ...

  7. jmeter导入DB数据再再优化

    前言:分享和规定命名规范后,各位测试人员一致认为这样jmeter的jmx文件限制太死,主要体现六方面: 第一:规定了一个jmx文件只能录入一个接口,这样会导致jmx文件很多 第二:导入DB的jmx文件 ...

  8. mongodb删除重复数据

    注:mongodb当前版本是3.4.3   插入六条数据:   查询存在重复的数据:   查询并循环删除重复数据:   删除语句解析: db.userInfo.aggregate([     {   ...

  9. 前台返回json数据的常用方式+常用的AJAX请求后台数据方式

    我个人开发常用的如下所示: 之所以像下面这样下,一是前台Ajax,二是为安卓提供接口数据 现在常用的是返回JSON数据,XML的时代一去不复返 JSON相对于XML要轻量级的多 对JSON不是十分熟悉 ...

随机推荐

  1. VB操作EXCEL文件

    用VB操作Excel(VB6.0)(整理) 首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel. ...

  2. 解决Android studio导入项目卡死

    在使用Android studio的时候常常遇到这样的问题,从github或是其他地方导入项目,Android studio呈现卡死的现象!当遇到这种情况时,可以看看是下面那种情况,在按照方法来解决! ...

  3. getPx function

    function getPX(str){  return str.substring(0,str.indexOf('px'));}

  4. Visual Studio的背景插件

    分享一个Visual Studio的背景插件,让堆码更富情趣..哈哈   忘记一件重要的事情,我使用的是VS 2012版,其他更高版本应该是可以找到的,以下版本就不清楚了.有可能找不到,见谅,也不是我 ...

  5. PHP中被定义为false的

    if($res == false){ echo "未定义通过<br>"; } $res = 0; if($res == false){ echo "0数字通过 ...

  6. oracle与mysql创建表时的区别

    oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表CREATE TABLE predict_data as ( id integer ), mid ), time dat ...

  7. PXE+Kickstart+DHCP+TFTP实现无人值守安装操作系统

    PXE+Kickstart+DHCP+TFTP实现无人值守安装操作系统 PXE + Kickstart PXE的工作流程及配置文件 Kickstart的配置文件 Linux安装大致可以分为2个阶段 第 ...

  8. BZOJ 2091: [Poi2010]The Minima Game

    Description 每次可以任取数字,使用最优策略让差最大. Sol DP. 一开始我写了个单调队列贪心,然后狂WA不止... 正着做有后效性,因为前面的决策无法保证在后面是最优秀的,但如果倒这做 ...

  9. [转载]js中return的用法

    一.返回控制与函数结果,语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二.返回控制,无函数结果,语法为:return;  在大多数情况下,为事件处理函 ...

  10. 卷积神经网络_(4)_caffe简介

    这里大致说一下caffe.caffe是伯里克利大学的贾杨清教授写的一个深度学习框架,使用C++编写的,但同时也提供python和matlab接口:组成部分主要有: (1)Blob:用来存储数据和梯度: ...