0

我将 RegularExpressionValidators 用于我的 ASP.NET 表单中的输入文本框。

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 回答