我在我的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=">>" 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>
答案 0 :(得分:1)
我发现 buttonMove 会在点击它时导致回发。
验证控件的错误消息无法保留回发。
您还没有提到从ListBox A移动到ListBox B的内容。
因此,如果您可以使用JavaScript将元素从ListBox A移动到ListBox B(我的意思是,不要使用服务器端程序),那么您的问题就可以解决了。
如果您有任何问题,请告诉我。