问题描述
- easyui 删除复选框选中的数据,在后台怎么接受前台js数组
-
我需要做一个删除功能,datagrid第一列是复选框,我根据选中的复选框来删除,可能是单选或多选,我在前台是拿到选中的行的id,用一个数组保存下来,
看代码// 返回被选中的行 然后集成的其实是 对象数组 var row = $('#tab').datagrid('getSelections'); var i = 0; var string = ""; for(i;i<row.length;i++){ string += row[i].TeacherId; if(i < row.length-1){ string += ','; }else{ break; } }
我的问题是,我在一般处理文件中怎么接收这个传过来的数组,后台该怎么写,我的sql语句该怎么写了?
解决方案
我已经解决了。。。
string ID = context.Request.Params["ID"];
SqlConnection conn = new SqlConnection(connstr);
string sql = string.Format("delete from Teacher where Teacherid in ("+ID+")");
解决方案二:
后台接到字符串 拆成数组 (如果要int类型还得再转成int数组)
删除的sql条件 where id in ()
解决方案三:
ajax传递你的id就好了,你不是将id用逗号隔开了,服务器端split下得到内容就好了
$.ajax({url:'xxxx.ashx',data:{id:string},type:'POST',complete:function(xhr){
alert('ajax返回:'+xhr.responseText)
}});
string s=context.Request.Form["id"];//ajax指定的是post,所以用Form
if(!string.IsNullOrEmpty(s)&&System.Text.RegularExpressions.Regex.IsMatch(s,@"^d+(,d+)*$")){//这里要用正则在验证下有效性
string sql="delete from youtable where yourid in("+s+")";
//..执行sql
}
else context.Response.Write("ID为null或格式错误!");
解决方案四:
//此处的params是你蠢到后台的参数名称
String params = req.getParameter("params");
//循环删除
if (params != null && !"".equals(params)) {
String[] paramArr = params.split(",");
for (String param : paramArr) {
//删除操作
}
}
解决方案五:
//前台js部分可以这样写
var string = $('#tab').datagrid('getSelections');
var params = [];
$.each(string, function(index, item){
params.push(item.filed);//此处的filed是datagrid中的列名
});
//可使用ajax异步提交
时间: 2024-09-10 01:22:45