csdn以前的一个老帖子说服务器控件的验证(比如RequiredFieldValidator)仍然是在客服端进行验证的。
但我看了一会ie上的源代码,虽然有JavaScript的东西,但其实不能当作静态页面执行。就是说,吧源代码复制到Dreamweaver里再执行,不能实现为空验证。这是不是跟viewstate有关?而且源代码里面的JavaScript代码我也还看不懂,是我水平的问题还是其他原因,比如这些符号://<![CDATA[  //]]>
谁能给详细解释一下以上现象。
另:如果服务器验证控件都是在客户端验证,那用什么办法能实现在服务器端验证呢?

解决方案 »

  1.   

    Validatior 有一个属性叫EnableClientScript,用来控制服务器端验证还是客户端验证。
      

  2.   

    还是不是很明白,假设EnableClientScript=ture时,这可以有两张解释:
    1、仅在客户端验证
    2、既在客户端验证,也在服务器端验证
    该选哪一个呢?
      

  3.   

    EnableClientScript=ture仅在客户端验证。其实有个简单的方法。服务器端验证需要页面postback回服务器,postback会重新生成页面,也就是说page_load会再次调用。你只要在page_load里设置端点,看看voladator起作用的时候进不进断点就可以了。
      

  4.   

    2
    在服务端可以用
      if   (Page.IsValid)   
      {   
        
      }
    来验证
      

  5.   

    没有理解!
    1、pageload都会产生的!
    2、是指在pageload里加if(!IsPostBack)判读么?
       测试结果:EnableClientScript=ture时,IsPostBack为ture
    怎么回事?
      

  6.   

    验证控件在客户端验证还是在服务器端验证,取决于EnableClientScript的属性设置。当设置为True则直接在客户端验证。不需要通过服务器端来返验证。多数情况下都是这种验证机制。默认下也是True。只有在比较特殊情况下才使用服务器端验证。比如说你那个待验证控件在某些场合隐藏或Enable=Flase等或你需要在验证这个控件输入前执行部分服务器端代码。此时可以设置该验证方式为服务器端验证。 
    【详细说明建议还是仔细在阅读MSDN说明】 
    =========================
    另外个人建议。这种疑惑最好先查查msdn。实在看不明白在问。效果会比较好。不然别人提的这些估计你也看不懂。
    大家一起加油。呵呵