我正在使用 Asp.Net 2.0。我有一个场景,我需要针对两个范围中的任何一个检查用户输入。例如我需要根据范围 100-200 或 500-600 检查文本框值。我知道我可以将 2 个 Asp.Net RangeValidators 连接到 TextBox,但是如果您愿意,这将尝试针对两个范围和 AND 条件验证输入。 CustomValidator 是一个选项,但我将如何从服务器端传递 2 个范围值。是否可以扩展 RangeValidator 来解决这个特定问题?
[更新]
抱歉我没有提到这一点,我的问题是范围可能会有所不同。而且页面中的不同控件会根据某些条件具有不同的范围。我知道我可以在一些 js 变量或隐藏的输入元素中保存这些值,但它看起来不会很优雅。
最佳答案
CustomValidator 应该可以工作。我不确定“从服务器端传递 2 个范围值”是什么意思。您可以使用如下验证方法在服务器端对其进行验证:
void ValidateRange(object sender, ServerValidateEventArgs e)
{
int input;
bool parseOk = int.TryParse(e.Value, out input);
e.IsValid = parseOk &&
((input >= 100 || input <= 200) ||
(input >= 500 || input <= 600));
}
然后,您需要将 CustomValidator 的 OnServerValidate 属性设置为“ValidateRange”,或者您碰巧调用它的任何内容。
这是你追求的那种东西吗?
关于c# - Asp.Net : Extended range validation,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/251842/