是这样的我在当前页调用后台方法 用的是<%=方法名(参数)%>
后台得到参数后查询对象删除
前台代码如下
//删除当前
function del() {
if (confirm('是否删除当前项?')) {
//删除操作
var selectList = jQuery(".table tbody input[type=checkbox]:checked").map(function () {
return jQuery(this).val();
}).get().join(',');//获取选中的Checkbox值
if (selectList==null || selectList=="") {
alert("请选中当前项");//判断是否选中
} else {
console.log("删除当前信息Id:" + selectList);//打印到控制台 取到值为4336
var str = document.getElementById("<%=HiddenField1.ClientID%>").value;
console.log("此时HiddenField1的值为空:" + str); //这个时候 HiddenField1 的值为空
document.getElementById("<%=HiddenField1.ClientID%>").value = selectList; //赋值给hidden控件
console.log("HiddenField1赋值成功:" + document.getElementById("<%=HiddenField1.ClientID%>").value); //赋值成功了
var result = "<%= DeleteById(""+str2+"") %>";//调用方法
console.log(result);
if (result == "y") { //根据返回值判断是否删除成功
alert('删除成功!');
} else {
alert('单选删除失败');
}
}
} else {
alert('取消删除');
}
Bind();
Init();
}
后台代码如下
public string str1, str2;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//获取前台隐藏空间的值
str2 = HiddenField1.Value; //单个
}
}
public static string DeleteById(string str2)
{
try
{
if (string.IsNullOrEmpty(str2))
{
return "参数值是空的";
}
_collegeService.Delete(_collegeService.GetById(int.Parse(str2)));
return "y";
}
catch (Exception e)
{
return "n";
throw e;
}
}
网页代码就是删除按钮 加 HiddenField2
问题就是 result 总是"参数值是空的" str2值总是空的 可是我前台赋值是对的啊
就是取不到前台的隐藏控件里的值
导致删除出问题
顺便附上调试的时候控制台的信息
删除当前信息Id:4336
此时HiddenField1的值为空:
HiddenField1赋值成功:4336
result:参数值是空的
建议你的删除取值需要做一个调试提示
不纠结控件 取Session值了。。。。。