我遇到了与TextBox连接的RegularExpressionValidator:
<asp:TextBox ID="tbPRCOD" runat="server" Font-Bold="True" ForeColor="Green" BackColor="White" BorderStyle="None" Width="50%"></asp:TextBox>
<asp:RegularExpressionValidator id="revPRCOD" runat="server" SetFocusOnError="True"
ErrorMessage="<%$ Resources:GlobalTranslations, max20char %>" Display="Dynamic"
ControlToValidate="tbPRCOD" BackColor="Transparent" Font-Bold="True"
Font-Underline="True" ForeColor="Red" ValidationExpression="^[a-zA-Z0-9]{0,20}$">
在页面上我有下拉列表:
<asp:DropDownList ID="cmbIDFAM" runat="server" Width="98%" SkinID="mandatoryCombo" Font-Size="X-Small" AutoPostBack="true" > </asp:DropDownList></td>
启动时启用验证程序(如果文本框中的字符串超过20个字符,则验证程序显示验证错误)。如果我将DropDownList中的选定项更改为值为5的项,那么我想关闭验证,因为对于DropDownList中的此索引,我想在TextBox(tbPRCOD)中写入超过20个字符:
Protected Sub cmbIDFAM_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbIDFAM.SelectedIndexChanged
If getValueFromCombo(cmbIDFAM) = 5 Then
tbPRCOD.MaxLength = 100
revPRCOD.Enabled = False
Else
tbPRCOD.MaxLength = 20
revPRCOD.Enabled = True
End If
End Sub
一切正常,直到我将cmbIDFAM DropDownList更改为第5项。我在TextBox中输入了超过20个字符,现在RegularExpressionValidator被禁用,因此它不会在验证中显示错误。当我在ddl中更改项目时,然后在TextBox中超过20个字符并启用验证程序,但错误未在页面中显示。为什么?如何强制验证?在ddl:
中更改项目后,我还使用函数强制验证revPRCOD.Validate()
在这种情况下,这不会有所帮助。感谢帮助。 垫。