0

ASP.NET フォームの入力テキスト ボックスに RegularExpressionValidators を使用しています。

GUIは次のように表示されます。すべての項目はサーバー コントロールであり、テキスト ボックスを離れると、入力が無効な場合はエラー メッセージが表示されます。

RegularExpressionValidator で EnableClientScript を使用してクライアント側の検証を有効にしました。テキスト ボックスを離れると、すぐにバリデーターが起動します。ただし、任意のボタンをクリックすると (ポストバックが生成されます)、正規表現バリデーターのエラー表示が画面から削除されます。クライアント検証を再トリガーするにはどうすればよいですか?

私はasp.netの初心者です

---------------------------
|                         | * Invalid input
---------------------------

Listbox A           Listbox B
------------       ------------
|          |       |          |
|          |       |          |
|          |   >>  |          |
|          |       |          |
|          |       |          |
------------       ------------

コードは次のようになります。

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:TextBox ID="nameBox" runat="server" CssClass="StandardTextBox" Width="297px"
        EnableViewState="true"></asp:TextBox>
    <asp:RegularExpressionValidator ID="regExpValidatorRuleName2" align="left" runat="server"
        ControlToValidate="nameBox" 
        Width="10px" Height="10px" 
        CssClass="StandardErrorLabel"
        Display="Dynamic" 
        ErrorMessage="Input has Invalid character(s). Valid characters are a-z, A-Z, 0-9, _, @, ., -"
        ValidationGroup="EditingPanel" 
        ValidationExpression="^[a-zA-Z0-9_@.-]*$" 
        ToolTip="Input has Invalid character(s). Valid characters are a-z, A-Z, 0-9, _, @, ., -">*</asp:RegularExpressionValidator>
    <asp:Panel ID="criteriaPanel1" GroupingText="Test" runat="server"
        left="19px" CssClass="InputPanelTableLeft" Width="400px" Height="470px" Font-Bold="True"
        Font-Size="X-Small">
        <table class="InputPanelTable">
            <tr>
                <td align="left">
                    <asp:ListBox ID="listboxA" Rows="10" runat="server" EnableViewState="true"
                        Width="150px" Height="100px"></asp:ListBox>
                </td>
                <td style="padding: 0px 5px 0px 5px" valign="middle">
                    <asp:Button ID="buttonMove" runat="server" OnClick="buttonMove_OnClick"
                        Text="&gt;&gt;" ToolTip="Moves selected item from left side to right" />
                </td>
                <td align="left">
                    <asp:ListBox ID="listboxB" Rows="10" runat="server" EnableViewState="true"
                        Width="150px" Height="100px"></asp:ListBox>
                </td>
            </tr>
        </table>
    </asp:Panel>
</asp:Content>
4

1 に答える 1

1

buttonMoveをクリックするとポストバックが発生することがわかりました。

検証コントロールのエラー メッセージは、ポストバックを使用して保持できません。

ListBox A から ListBox B に何を移動するかについては言及していません。

したがって、JavaScript を使用して ListBox A から ListBox B に要素を移動できれば (つまり、サーバーサイド プログラムを使用しないでください)、問題を解決できます。

何か問題がありましたらお知らせください。

于 2013-02-21T10:22:07.283 に答える