C# 图像按钮和更新面板

C# 图像按钮和更新面板,c#,asp.net,user-controls,C#,Asp.net,User Controls,我有一个图像按钮,定义如下: <div> <asp:ImageButton ID="btn1" runat="server" ImageUrl="/_LAYOUTS/1033/IMAGES/row.png" /> </div> <div> <asp:RequiredFieldValidator runat="server" ID="reqName" ControlToValidate="txtUserEmail" valida

我有一个图像按钮,定义如下:

<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
,则更新面板仍然有效,但似乎无法验证电子邮件文本框。

如果您将
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>