微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用ASP.NET验证器比较复选框和文本框是否有一种优雅的方法?

我有一个Asp.Net转发器,它包含一个文本框和一个复选框.我需要添加客户端验证,验证当选中复选框时,文本框只能接受零值或空白.

我想使用一个或多个Asp.Net的验证器控件来实现这一点,为客户端错误提供一致的显示(服务器端错误由另一个子系统处理).

Asp:CompareValidator似乎不够灵活,无法执行这种复杂的比较,因此我只剩下Asp:CustomValidator.

我遇到的问题是似乎没有任何方法可以将自定义信息传递给验证功能.这是一个问题,因为复选框和文本框的ClientIds在运行时对我来说是未知的(因为它们是Repeater的一部分).

所以…我的选择似乎是:

>以某种方式将文本框和复选框传递给CustomValidator(似乎不可能).
>根据CustomValidator传入的参数,通过JavaScript查找TextBox.这甚至是可能的,ClientId的含义是什么?
>完全忘记验证,并发出自定义JavaScript(允许我将两个ClientId传递给自定义函数).

关于什么可能是更好的实现方法的想法?

解决方法

我认为最好的方法是在新类中继承BaseValidator,并将这些ID作为属性传递给控件.您应该能够在验证器中解析ID,而无需知道在运行时生成的完整客户端ID.您应首先在服务器上验证数据,然后在客户端上验证数据.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐