2013-12-18 38 views
2

在我的管理頁面,我有一個"Log out"按鈕。在一頁上可以填寫並提交此表格,它有一些validator controls。問題是,當我在這個頁面上時,我不能註銷,因爲它希望填充文本框,即使它顯然不是通過註銷按鈕提交的。即使我沒有嘗試提交表單,每次嘗試離開此頁面時都會執行驗證程序嗎?要明確一點:它適用於其他任何頁面,只是驗證而已。嘗試驗證時按註銷按鈕,而不是提交

表單代碼:

<p> 
     <asp:Label ID="lblA" runat="server" Text="LabelA"></asp:Label><br /> 
     <asp:TextBox ID="txtA" runat="server"></asp:TextBox> 
     * 

       <asp:RequiredFieldValidator 
        ID="rfvA" 
        runat="server" 
        ControlToValidate="txtA" 
        ErrorMessage="Required" 
        Display="Dynamic"> 
       </asp:RequiredFieldValidator> 
    </p> 
    <p> 
     <asp:Label ID="lblB" runat="server" Text="LabelB"></asp:Label><br /> 
     <asp:TextBox ID="txtB" runat="server"></asp:TextBox> 
     * 

       <asp:RequiredFieldValidator 
        ID="rfvB" 
        runat="server" 
        ControlToValidate="txtB" 
        ErrorMessage="Required" 
        Display="Dynamic"> 
       </asp:RequiredFieldValidator> 
    </p> 

退出按鈕:

<asp:Button runat="server" Text="Log out" ID="btnLogout" OnClick="btnLogout_Click"/> 

當註銷點擊:

protected void btnLogout_Click(object sender, EventArgs e) 
    { 
     FormsAuthentication.SignOut(); 
     FormsAuthentication.RedirectToLoginPage(); 
    } 

任何想法?

回答

5

附加導致驗證錯誤您的按鈕

<asp:Button runat="server" CausesValidation="False" Text="Log out" ID="btnLogout" OnClick="btnLogout_Click"/>

+0

完美。將盡快接受。謝謝。 – guitarzero

0

您也可以使用這些控件的ValidationGroup財產。 將相同的ValidationGroup分配給您需要進行驗證的控件(和RequiredFieldValidator),如用戶名和密碼文本框和登錄按鈕(在您的情況下爲兩個文本框),並將不同ValidationGroup分配給其他控件(在您的情況下注銷按鈕)。

所以只有在點擊了同一個驗證組的按鈕時纔會觸發驗證。