Page.IsValid和args.IsValid之间的关系是什么

时间:2012-02-02 03:39:28

标签: c# asp.net .net

Page.IsValid和args.IsValid是否依赖于其他?

我的意思是如果args.IsValid =" true" Page.IsValid必须是" true"。

反过来说: 如果Page.IsValid =" true"所以args.IsValid =" true"

2 个答案:

答案 0 :(得分:2)

两者在实现Page.IsValid应用于页面时都是安静的不同而args.isValid用于自定义验证目的,请参阅下面的示例

<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>CustomValidator ServerValidate Example</title>
<script runat="server">

      void ValidateBtn_OnClick(object sender, EventArgs e) 
      { 

         // Display whether the page passed validation.
         if (Page.IsValid) 
         {

            Message.Text = "Page is valid.";

         }

         else 
         {

            Message.Text = "Page is not valid!";

         }

      }

      void ServerValidation(object source, ServerValidateEventArgs args)
      {

         try 
         {

            // Test whether the value entered into the text box is even.
            int i = int.Parse(args.Value);
            args.IsValid = ((i%2) == 0);

         }

         catch(Exception ex)
         {

            args.IsValid = false;

         }

      }

   </script>    

</head>
<body>

   <form id="form1" runat="server">

      <h3>CustomValidator ServerValidate Example</h3>

      <asp:Label id="Message"  
           Text="Enter an even number:" 
           Font-Names="Verdana" 
           Font-Size="10pt" 
           runat="server"
           AssociatedControlID="Text1"/>

      <br />

      <asp:TextBox id="Text1" 
           runat="server" />

      &nbsp;&nbsp;

      <asp:CustomValidator id="CustomValidator1"
           ControlToValidate="Text1"
           Display="Static"
           ErrorMessage="Not an even number!"
           ForeColor="green"
           Font-Names="verdana" 
           Font-Size="10pt"
           OnServerValidate="ServerValidation"
           runat="server"/>

      <br />

      <asp:Button id="Button1"
           Text="Validate" 
           OnClick="ValidateBtn_OnClick" 
           runat="server"/>

   </form>

</body>
</html>

答案 1 :(得分:1)

页面验证成功后,

Page.IsValid(readonly)返回true;否则,错误。

阅读MSDN doc.

  

要使此属性返回true,请使用所有验证服务器控件   当前验证组必须成功验证。你应该   只有在调用Page.Validate后才能检查此属性   方法,或将CausesValidation属性设置为true   用于ASP.NET服务器控件的OnServerClick事件处理程序   启动表格处理。

ServerValidation处理程序中;如果输入验证(args.Value)分别成功或失败,您可以将truefalse设置为ServerValidateEventArgument.IsValid属性。

MSDN Doc

  

验证例程完成后,使用IsValid属性   指示Value属性指定的值是否传递   验证。此值确定输入控件是否关联   使用CustomValidator控件传递验证。