在后面的代码中启用/禁用RegularExpressionValidator

时间:2012-05-28 07:47:17

标签: asp.net vb.net

我遇到了与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()

在这种情况下,这不会有所帮助。感谢帮助。 垫。

0 个答案:

没有答案