我有以下带验证的文本框:
<asp:TextBox ID="txtInput" runat="server" Width="80px"
CausesValidation="True"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredValidator" runat="server"
ControlToValidate="txtInput"
Display="None"
ErrorMessage="Bitte füllen Sie dieses Feld aus"
Enabled="false" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator" runat="server"
ControlToValidate="txtInput"
ValidationExpression="[0-9]{1}(\d)*"
Display="None"
ErrorMessage="Bitte geben Sie eine Zahl ein"
Enabled="false" />
<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server"
TargetControlID="RequiredValidator" />
<asp:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server"
TargetControlID="RegularExpressionValidator" />
如果单击此页面上的按钮(CausesValidation设置为true),则控件将正确验证。 但是,当我将文本框及其关联的验证器和扩展器不直接放在页面上,而是放入用户控件时,验证弹出窗口不再显示。它似乎仍然有效,因为当输入无效时,不会触发按钮的操作。
答案 0 :(得分:1)
我找到了解决方案。我的用户控件的名称包含特殊字符。在我的情况下,“Ä”是德国A-Umlaut。 似乎ASP.NET在控件的验证器上存在问题,这些控件的名称包含非ascii字符。
答案 1 :(得分:0)
您的验证者有Enabled="false"
。