ASP.NET控件默认是submit状态的,所以点击都会提交到后台。
VS中我们拖动控件或是自己写控件,是这样的
在编译后:
在asp中的OnClick和在Html里的OnClick是不一样的,前者是ASP中的,所以点击触发的是服务器事件,后者是客服端事件,当然在ASP中也有客户端的,OnClientClick事件,它在编译后就是HTML里的OnClicK事件。
为防止我们在点击控件时提交,我们可以这样做。
,“javascript:”可以省略。意思就是,在提交前进行一个验证,在验证成功后再提交给后台,所以 edit2 这个方法返回了一个布尔值(true 和false),true时提交,在这个 edit2 方法中,我们可以更改控件的控件绑定的方法,使这个或某个控件的onClientClick事件绑定到其他方法上,我这里是更变了本身这个控件,传入了this
更改的方法为save。
以我的例子来说就是:点击服务器控件(编辑),触发onclick事件,更改表格结构填充数据,再改变这个控件的value为“保存”(asp的button编译后是html里的input),然后更改这个控件onclick事件的方法为save,然后return false 使之不提交,save方法里做要修改值得验证,而这个控件从一开始绑定的服务器方法就是存储数据的。
edit2方法:
function edit2(e) {
var row = $(e).parent().parent().children("td");
var value2 = row[4].innerText;
row[3].innerHTML = "<input name='psInput' class='layui-input' value = '" + row[3].innerText + "' style='width:100%'/>";
row[4].innerHTML = "<input name='areaInput' class='layui-input' value = '" + row[4].innerText + "' style='width:100%'/>";
$(e).val("保存");
$(e).attr("onClick", "return save(this)");
return false;
}
save方式只是验证的,代码就不贴了。
最后效果图: