2014-05-08 46 views
0

我已經使用Asp.net驗證控件,如必填字段驗證等,所以我需要明確提及Page.IsValid或默認情況下調用?我是否需要顯式調用Page.IsValid如果我使用Asp.net valdiators?

<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 /> 

回答

3

如果控制有CausesValidation設置爲true(默認),這是沒有必要的。

哪裏,這是默認設置控件:

  • Button
  • ImageButton
  • LinkButton
  • Web服務器控件,
  • HtmlInputButton
  • HtmlInputImage
  • HtmlButton
  • HTML服務器控件,
  • 控制,可自動回發到服務器,如TextBoxCheckBoxListControlBulletedList

所以,如果你把它設置爲false你可能迫使通過手動調用Page.Validate(ValidationGroupName)來驗證服務器端。之後您可以檢查Page.IsValid

+0

確定,但引用你的最後一句話,爲什麼會有人這樣做呢?禁用然後在服務器中調用? – user3518032

+0

@ user3518032:有時您不希望強制客戶端驗證,而是在服務器端已知的某些條件下進行驗證。或者你想組合多個驗證組。 –

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?

相關問題