0
我使用RegularExpressionValidators作为ASP.NET窗体中的输入文本框。如何触发RegularExpressionValidator的客户端验证?
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="^[[email protected]]*$"
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>
我可以使用客户端脚本来解决这个问题,但有数据源附加到列表框。在这种情况下,情况并不理想。是否可以使用'UpdatePanel'解决这个问题? @ashokkumar – sarat 2013-02-22 03:55:59
UpdatePanel也会导致回发,但唯一的区别是回发是异步发生的。您已经提到数据源已附加到列表框。即使那样你也可以使用javascript将ListBox A中的元素移动到ListBox B.根据你的要求,将ListBox A中的元素移动到ListBox B只能通过JavaScript来发生,但是不会发生。如果您想知道如何使用Javascript在ListBoxes中移动数据,请告诉我一些示例数据。 – 2013-02-22 04:05:45
我已经设法使用JavaScript编写代码来移动数据,但不幸的是数据源导致一些问题... ListboxA包含从数据库检索并作为数据源附加到数据的数据。它包含简单的文字(“1”,“2”也会这样)。 – sarat 2013-02-22 04:22:24