2014-09-18 72 views
0

我有一個使用asp.net驗證器的webform應用程序。我有一個引導手風琴(或任何手風琴jquery等),我只想驗證可見面板上的控件。我爲每個面板設置了一個驗證組。我有一個提交按鈕。Asp Webform驗證一個按鈕多組手風琴標籤

我正在使用jquery來設置validationgroup屬性,但似乎這樣做時,按鈕會忽略該值。

我已經嘗試過手動驗證,但在這種情況下,頁面似乎完全跳過了驗證。我真的把頭撞在牆上。

<asp:button ID="btnDeleteConfirmation" runat="server" Text="Save" OnClientClick="return Validate();" CausesValidation="False"/> 

function Validate() { 
    var isValid = false; 
    isValid = Page_ClientValidate(mode); 
    return isValid; 
} 

當切換標籤/面板時設置模式,當我檢查它時,該值是正確的。該函數被調用和返回值看起來不錯,但頁面回傳,然後我得到以下預期的錯誤:

Page.IsValid cannot be called before validation has taken place. It should be queried in the event handler for a control that has CausesValidation=True and initiated the postback, or after a call to Page.Validate. 

當只有一個標籤/面板需要如何他人處理驗證客戶端進行驗證,並有是單個提交按鈕?

+0

我其實已經想通了。我試圖驗證的控件位於自定義用戶控件中。 ValidationGroup屬性未在用戶控件上公開。我通過公開財產作爲公共方法解決了這個問題。你可以解決它的另一種方法是手動設置服務器控件內的每個控件的驗證組,但該組是靜態的。 – chongo2002 2014-10-02 01:22:01

回答

0

通常在這種情況下,我設置驗證組上的每個部分正常,接着就什麼鍵,我需要做驗證我

Page.Validate(groupName); 

然後就可以調用Page.IsValid,它只會用驗證組。這樣你就不必做其他事情了。不要爲您的按鈕關聯驗證組。

+0

上面的工作,但值得一提的是,這是服務器端驗證,而不是客戶端。 – chongo2002 2014-10-02 01:20:16