我在中继器中有一个自定义验证器
<asp:Repeater runat="server" ID="lstRepeater" >
<ItemTemplate>
<asp:CustomValidator ID="cvValid" runat="server" CssClass="error" EnableClientScript="False" ErrorMessage="Invalid."></asp:CustomValidator>
<asp:TextBox runat="server" ID="tbCustomAnswer"></asp:TextBox>
</ItemTemplate>
</asp:Repeater>
作为测试,我在OnClick事件上尝试了以下代码
foreach(RepeaterItem item in lstRepeater.Items)
{
CustomValidator cvValid= (CustomValidator)item.FindControl("cvValid");
cvValid.IsValid = false;
}
可以假设,该错误消息未显示在页面上,因为我没有对转发器进行数据绑定。但是,一旦重新构造了转发器和数据源,我就会丢失转发器内部的所有旧值。有没有解决此问题的简单方法?我想不出一种优雅的方式来解决这个问题。
最佳答案
为什么不能只让OnServerValidate函数返回false?
<asp:CustomValidator ID="cvValid" runat="server" CssClass="error"EnableClientScript="False" ErrorMessage="Invalid."OnServerValidate="ServerValidation" />
void ServerValidation (object source, ServerValidateEventArgs args)
{
args.IsValid = false;
}
关于c# - 中继器中的CustomValidator,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/808448/