2012-11-23 39 views
0

我定義如下一個圖像按鈕,圖像按鈕,更新面板

<div> 
    <asp:ImageButton ID="btn1" runat="server" ImageUrl="/_LAYOUTS/1033/IMAGES/row.png" /> 
</div> 
<div> 
    <asp:RequiredFieldValidator runat="server" ID="reqName" ControlToValidate="txtUserEmail" validationGroup="Page" 
     ErrorMessage="enter a email" /> 
    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" 
     ControlToValidate="txtUserEmail" ErrorMessage="enter a email"> 
    </asp:RegularExpressionValidator> 
</div> 

現在的地方我有更新面板,

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
       <ContentTemplate> 
        <div> // with controls in it that do some calculations without post back 

問題是,當我的用戶控件加載起來,如果我嘗試計算並按下更新面板中的按鈕,它會檢查文本框是否爲空,如果它給出輸入一個不應該發生的電子郵件錯誤。

現在,如果我將validationGroup="Page"添加到驗證程序,它確實有效,但它不會檢查電子郵件文本框是否爲空。

此外,如果我添加EnableClientScript=False然後再次更新面板的作品,但似乎並沒有驗證電子郵件文本框。

回答

0

如果您將ValidationGroup="Page"添加到您的驗證器中,您還需要將其添加到相關按鈕和輸入控件中,否則驗證器將獨立在一個組中,而無需驗證。

<div> 
    <asp:ImageButton ID="btn1" runat="server" ImageUrl="/_LAYOUTS/1033/IMAGES/row.png" ValidationGroup="Page" /> 
</div> 
<div> 
    <asp:RequiredFieldValidator runat="server" ID="reqName" ControlToValidate="txtUserEmail" ValidationGroup="Page" ErrorMessage="enter a email" /> 
    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" ControlToValidate="txtUserEmail" ValidationGroup="Page" ErrorMessage="enter a email" /> 
</div>