如果我使用Asp.net valdiators,我是否需要明确调用Page.IsValid?

时间:2014-05-08 11:30:52

标签: asp.net validation

我使用了Asp.net验证控件,比如必需字段验证器等,所以我需要明确提到Page.IsValid还是默认调用?

<label>DeadLine</label>
<asp:TextBox ID="txtDeadLine" runat="server" CssClass="textField_width"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" 
                        ControlToValidate="txtDeadLine" ErrorMessage="Deadline Date is Required" 
                        ForeColor="Red" ValidationGroup="GroupComposeLetter">Deadline Date is Required
</asp:RequiredFieldValidator>
<br />
 <%--<asp:GridView ID="gridViewComplaints" runat="server"

     ></asp:GridView>--%>
<br />

2 个答案:

答案 0 :(得分:3)

如果控件的CausesValidation设置为true(默认值),则不需要。

控制默认设置的位置:

  • Button
  • ImageButton
  • LinkButton
  • Web服务器控件,
  • HtmlInputButton
  • HtmlInputImage
  • HtmlButton
  • HTML服务器控件,
  • 可以自动发回服务器的控件,例如TextBoxCheckBoxListControlBulletedList

因此,如果您已将其设置为false,则可以通过手动调用Page.Validate(ValidationGroupName)强制验证服务器端。之后,您可以查看Page.IsValid

答案 1 :(得分:0)

  

验证发生在Page_Load之后,但在事件处理程序之前(参见http://msdn.microsoft.com/en-us/library/ms178472(v=VS.100).aspx)。


  

如果您的按钮未导致验证,则必须手动触发Page.Validate。

  • Page.Validate 方法由CausesValidation属性设置为true的控件自动触发(这是Button控件的默认值)。

  • Page.IsValid属性告诉您验证是否成功。)

    更多详情,请参阅此讨论

How does Page.IsValid work?