sql创建存储过程:
USE [skeLive]
GO
/****** Object: StoredProcedure [dbo].[pro_DelRFCDetail] Script Date: 12/20/2017 10:46:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[pro_DelRFCDetail]( --创建存储过程
@strid varchar(max) --参数 格式 "1,2,3,5,6"
)
as
declare @temp Table (a varchar(100)) --创建临时表
begin
--把参数@strid分割成int数组并插入临时表@temp
Declare @i Int
Set @strid = RTrim(LTrim(@strid))
Set @i = CharIndex(',',@strid)
While @i >= 1
Begin
Insert @temp Values(Left(@strid,@i-1))
Set @strid = SubString(@strid,@i+1,Len(@strid)-@i)
Set @i = CharIndex(',',@strid)
End
If @strid <> ''
Insert @temp Values (@strid) --插入临时表
delete dbo.RequireFClientDetail where id in (select * from @temp) --执行为删除操作 通过id与临时表中的int数组对照
end
前端View加入checkbox全选批量删除
table的标题里加入:
<th style="text-align:center;">
全选
<input type="checkbox" id="checkall" @*οnclick="SelectAll(this)"*@ />
</th> 其它的省略,table中的标准写法
table内容行:
@foreach (var item in Model)
{
<tr>
<td style="width:55px;">
@Html.CheckBox(item.id.ToString())
</td>
。。。。
js代码:
$(document).ready(function()
{
//全选
$("#checkall").click(function () {
// $("[type='checkbox']").attr("checked", $(this).attr("checked")); //不起作用
$("[type='checkbox']").prop("checked",$("#checkall").prop("checked"));
});
var arry = new Array();
$("#delall").click(function () {
//确定至少选择一项
if ($("[type='checkbox']:checked").length == 0)
{
alert("请至少选择一项");
return false;
}
var j=0;
var rfcid=@ViewBag.RFC_ID;
$("[id!='checkall']:checked").each(function(){ //原用name= 改为id
var id = $(this).attr("name");
arry[j]=id;
j++;
})
if(arry.length>0){
if(!confirm("选择的记录将被删除,确定吗?")) return false;
var url = "/RequireFClient/DelList2/"+rfcid+"?strid=";
var did="";
for(var i=0;i<=arry.length-1;i++)
{
if(i==arry.length-1)
{
did+= arry[i];
}
else
{
did+= arry[i]+",";
}
}
$.ajax({
type:"Post",
url:url+did,
success:function(data){
if (data == "-1") { //alert("删除错误"); return false;
}
// else $(tr).remove();
}
})
}
alert("删除完成!");
window.location.reload("/RequireFClient/rdList/"+rfcid);
})
});
Control:
[HttpPost]
public ActionResult DelList2(int? id,string strid)
{
var parm = new SqlParameter[]
{
new SqlParameter("@strid", strid)
};
string sql = @"EXEC dbo.pro_DelRFCDetail @strid";
db.Database.ExecuteSqlCommand(sql, parm);
return RedirectToAction("rdlist", new { id=id});
}