1 场景
Asp.net开发过程中,表单提交操作是最常用的一个动作。
(1)如果我们在表单提交前能有一个对表单项进行验证的前置动作,那么就可以减少错误提交的次数(验证提交数据是否合法,如果不合法就不提交)。
(2)如果我们在表单提交完成后在前端能触发一个回调函数,那么我们就可以对表单提交后,在服务器端的执行结果进行验证。
2 总结
(1)添加前置函数
最简单的添加方式:给form挂接 onsubmit方法。
<form id="form1" runat="server" onsubmit="return validateForm()">
注:添加的onsubmit方法必须有返回值“true”或“false”,在表单提交前,会先执行“validateForm()”方法,如果此方法返回值为true,那么表单正常提交,如果此方法返回值为false,那么表单停止提交。
表单提交前的验证操作,我们就可以写在validateForm()方法里,验证通过返回true,正常提交。验证不通过,返回false,停止提交。
(2)添加回调函数
也提供最简单的方法:在服务器端通过“ClientScript”类对象提供的静态方法,给表单添加回调函数。
protected void ModifyLink_Click(object sender, EventArgse)
{
Tel400Entitytel400 = new Tel400Entity()
{ Id=txt400TelId.Text,
Tel400 = txt400Tel.Text,
FixTel = txtFixTel.Text,
Remark = txtRemark.Text,
Flag = NumberFlag.SelectedValue
};
boolisOk= Tel400BLL.Update(tel400);
ClientScript.RegisterStartupScript(this.GetType(), "ModifyJs","<script>ModifyIsOK('" +isOk.ToString() + "');</script>");
}
注:上述函数为
<asp:LinkButton ID="btn_modify" runat="server" class="easyui-linkbutton" OnClick="ModifyLink_Click">修T改?</asp:LinkButton>富客户端控件的后台事件代码。
在ClientScript.RegisterStartupScript函数中,我们把客户端js函数"ModifyIsOk(obj)"设计成了控件click事件在前段的回调函数。
<script type="text/javascript">
///修改操作,表单提交后的回调函数。
functionModifyIsOK(obj) {
switch (obj) {
case 'True':
break;
default:
alert("修改失败,已经存在对应的短号!");
break;
}
}
</script>
特别强调:ClientScript.RegisterStartupScript函数添加的调用脚本在表单的最后(</form>前面),适合在页面加载完成后执行Js代码,"ModifyIsOK()"函数最好添加在表单控件之前,如果加载。
也可以使用ClientScript.RegisterClientScriptBlock添加回调函数,此函数会将调用脚本添加在(<form>后面),适用在页面加载控件之前执行。