我有一个图像按钮,定义如下,
<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 :(得分: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>