代码改变世界

asp.net服务器验证控件失效的问题

2011-06-14 10:19  追忆似水流年  阅读(1768)  评论(0编辑  收藏  举报

        问题是这样的:对一些TextBox输入框做数据验证时,最初用到的是服务器数据验证控件。这样是没有问题的。后来对其他的一些TextBox也要做一些数据验证,这时没有使用服务器验证控件,而是对按钮加了一个OnClientClick脚本验证函数judgeInput()。<asp:Button ID="btnSave" SkinID="ButtonStyle" runat="server" Text="保 存" OnClick="btnSave_Click" OnClientClick="return judgeInput();" />。

        此时,问题暴露出来了,judgeInput()中的数据验证功能正常,而之前采用服务器数据验证控件的,全部失效了。看来是对服务器数据验证控件的内部机制不了解。

        问题解决之道:在judgeInput()函数的开头加上if(Page_ClientValidate()){...//数据验证代码}。问题解决。

        归纳:对服务器数据验证控件的数据验证,它是在客户端执行的,验证通过后Page_ClientValidate()返回true,否则为false.没有OnClientClick时,它默认会去执行,但有了客户端函数OnClientClick,如果不显示书写Page_ClientValidate(),那么默认不执行服务器数据验证控件的数据验证。