验证不适用于web usercontrol

时间:2010-09-29 15:45:33

标签: asp.net ajax validation user-controls

我有以下带验证的文本框:

<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),则控件将正确验证。 但是,当我将文本框及其关联的验证器和扩展器不直接放在页面上,而是放入用户控件时,验证弹出窗口不再显示。它似乎仍然有效,因为当输入无效时,不会触发按钮的操作。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。我的用户控件的名称包含特殊字符。在我的情况下,“Ä”是德国A-Umlaut。 似乎ASP.NET在控件的验证器上存在问题,这些控件的名称包含非ascii字符。

答案 1 :(得分:0)

您的验证者有Enabled="false"