1.onclientclick
onclick是指调用server端的事件,就是写在CS文件中的。
onclientclick是指在控制输出HTML代码时 调用javascript中的事件。
如果一个button里同时有这两个事件,则是先执行onclientclick然后再执行onclick事件。
很多时候都是先用onclientclick来做验证,onclientclick验证不通过,不执行onclick事件,如果验证通过则执行后台server端的onclick事件。
2.isvalid
后台验证
Page.IsValid属性,获取一个值,该值指示页验证是否成功。
如果页验证成功,则为 true;否则为 false。
若要使此属性返回 true,当前验证组中的所有验证服务器控件必须都验证成功。只有在已调用 Page.Validate 方法,或已在开始窗体处理的 ASP.NET 服务器控件的 OnServerClick 事件处理程序中将 CausesValidation 属性设置为 true 后才可以选中该属性。这些服务器控件包括 Button、HtmlButton、HtmlInputButton、HtmlInputImage、ImageButton 以及 LinkButton 类。
如果强制使用 Validate 方法对验证组进行验证,那么指定验证组中的所有验证控件也必须都验证成功。
二、
通常我们在ASPX上面设置各种验证控件就可以对表单输入项进行检查,但这个功能在客户端关掉JavaScript之后,就over了。
为了防止某些坏人搞破坏,ASP.net在Page_Load事件之后,会执行Page.Validate()去启动验证控件的服务器端验证代码,验证结果会放入Page.IsValid中,这样我们在后续的代码中就可以通过Page.IsValid来判断全部数据是否合法。
而如果我们想在Page_Load事件中就知道是否有非法数据,那就需要在Page_Load事件中先调用Page.Validate()进行检查。
button的click事件处理代码这样就可以了(当然是没有设置ValidationGroup的情况下)
//Page.Validate执行前
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == true)
{
Page.Validate();
if (Page.IsValid == true)
{//验证成功
DoSomeThing();
}
else
{//验证失败
return;
}
}
}
//Page.Validate已执行后
protected void btnSave_Click(object sender, EventArgs e)
{
if (Page.IsValid == true)
{//验证成功
DoSomeThing();
}
else
{//验证失败
return;
}
}
解释:验证
页面中的验证控件是否全部通过...但是验证控件都相当于js验证,如果不通过,就不会通过客户端的验证,显然就不会去后台去执行这个page.isvalid,可以通过设置验证控件的
causescriptvalidate为false来忽略客户端验证,进行后台验证,那这个验证控件的意义岂不是丢了...后来发现在浏览器中可以在js执行完了之后去修改对应的值,这样就造成的脏数据,这
就是在后台使用page.isvalid的好处了:为了防止某些(强人)的(更新),这边加上page.isvalid相当于双层保险
备注
若要使该属性返回 true,Page.Validators 属性中的所有验证服务器控件必须都验证成功。只有在已调用 Page.Validate 方法,或已在开始窗体处理的 ASP.Net 服务器控件的 OnServerClick 处理程序中将 CausesValidation 属性设置为 true 后才可以选中该属性。这些服务器控件包括 Button、HtmlButton、HtmlInputButton、HtmlInputImage、ImageButton 以及 LinkButton 类。
示例
[Visual Basic, C#, JScript] 下面的示例说明使用 IsValid 属性设置条件语句。如果该属性返回 true,则 lblOutput 控件的 Text 属性被设置为“Page is valid!”。否则,它被设置为“Some of the required fields are empty”。
[Visual Basic]
Sub ValidateBtn_Click(sender As Object, e As EventArgs)
If (Page.IsValid) Then
lblOutput.Text = "Page is Valid!"
Else
lblOutput.Text = "Some of the required fields are empty"
End If
End Sub
不能太依赖客户端验证,服务器端也要再验证
customvalidator控件在焦点移开验证控件时不会进行验证,通过比如按钮的事件来检测是否page.isvalid。
顶
0
踩
asp.net在后台弹出提示框
protected void btnSubmit_Click(object sender, EventArgs e)
{
ClientScriptManager clientScript = Page.ClientScript;
string message = "this is called the event from the client side.";
StringBuilder sb = new StringBuilder();
sb.Append("<script type='text/javascript'>");
sb.Append("alert('");
sb.Append(message);
sb.Append("')");
sb.Append("</script>");
clientScript.RegisterClientScriptBlock(this.GetType(), "alert", sb.ToString());
}