1

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()

これは、この状況では役に立ちません。手伝ってくれてありがとう。マット。

4

0 に答える 0