ASP.NET 验证控件

今天做项目是无意中发现一个问题:

点击提交按钮的时候验证用户输入是否完整,并且提示用户操作不可回复,是否要确认改操作。

很常见的一个需求,但是问题来了,没有添加OnClientClick事件的时候,验证控件正常运行,添加了该事件提示用户操作的时候,验证控件直接失效,百度了一下发现有类似问题,给出的解决方案是手动调用页面验证的js事件

   1:  function CheckClientValidate(){      
   2:      Page_ClientValidate();
   3:      if (Page_IsValid){
   4:          return true;
   5:      }
   6:      else{
   7:          return false;
   8:      }
   9:   }

新的问题又来了,这回是可以正常验证了,但是验证的是页面所有的验证控件(页面中有不同的验证分组的)通过查看Page_ClientValidate()方法,发现可以添加参数ValidationGroup,来验证不同的分组,OK此问题解决。

还有一个问题是控件会验证两次,继续观察Page_ClientValidate()代码,发现

   1:  onclick="if(Page_ClientValidate()) return CheckAgree();if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " 

看到没,在调用Checkgree()函数前先验证了一次页面,但如果页面没有通过验证,就会执行下面的if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate();又执行了一次验证。

坑爹呢这是,于是将button的CausesValidation设置为false。

清爽了……

posted @ 2011-11-09 12:02  梅子黄时雨  阅读(273)  评论(0编辑  收藏  举报