asp:Repeater的OnItemCommand不使用验证器

时间:2016-07-01 01:32:23

标签: c# asp.net validation webforms

OnItemCommand的{​​{1}}中的函数无法随机运行。这是一个正常的编码。

asp:Repeater

花了一些时间在调试上我发现它与页面上的输入文本框相关。

<asp:Repeater runat="server" ID="control01" OnItemCommand="control01_OnItemCommand"> <ItemTemplate> <li><asp:LinkButton runat="server" ID="btn_button" CommandArgument='1'>Click</asp:LinkButton></li> </ItemTemplate> </asp:Repeater>

只有当它的值正确(经过验证)时,该功能才能正常工作。

如果我在此处的文本框中删除<asp:TextBox ID="txt_input" runat="server"></asp:TextBox><asp:RequiredFieldValidator>

<asp:RequiredFieldValidator>

<asp:RegularExpressionValidator ID="rvDecimal" ControlToValidate="txt_input" runat="server" ErrorMessage="Please enter a valid value" ValidationExpression="^(-)?\d+(\.\d\d)?$"></asp:RegularExpressionValidator> <asp:RequiredFieldValidator ID="rfd_input" runat="server" ControlToValidate="txt_input" Text="Please enter a valid value"></asp:RequiredFieldValidator> 被解雇了,功能运行良好。

问题是,如何保持验证并使OnItemCommand中的功能正常工作?

2 个答案:

答案 0 :(得分:1)

如果您希望即使验证失败也会发生回发,您可以禁用客户端验证:

<asp:RegularExpressionValidator ID="rvDecimal" runat="server" EnableClientScript="false" ... />
<asp:RequiredFieldValidator ID="rfd_input" runat="server" EnableClientScript="false" ... />

如果要查看每个字段旁边的指示符,表明其数据无效,则验证程序应具有Text属性。

另一方面,如果您需要失败的验证列表,可以向页面添加ValidationSummary,并为每个验证器添加ErrorMessage

答案 1 :(得分:1)

最后,我通过在控件中添加CausesValidation="false"来解决问题。

<asp:LinkButton runat="server" ID="btn_button" CausesValidation="false">

这将跳过验证触发OnItemCommand

中的函数
相关问题