【发布时间】:2012-07-29 12:42:24
【问题描述】:
很遗憾,我无法向您展示代码,所以我只需要解释一下问题。
我在更新面板中有一个详细视图。我添加了一个自定义验证器,如果选择了单选按钮 A,它应该会显示打开条件 TextBox A 中必须有一个值。
我设置了一个检查此问题的 OnServerValidate 方法,如果它失败了,我将 args.Valid 设置为 false。
但是我的错误信息从未出现。如果我查看 IE Developer Tool,我会看到带有硬编码消息的客户验证器,但它是隐藏的(可见性:隐藏)。
我试图找到 customvalidator 并强制显示可见性,甚至尝试通过 customValidator.Style.Remove("visibility") 将其删除,但没有任何效果。消息总是隐藏的。
该页面确实未能通过验证,就像满足该条件一样,我的页面将不会保存。它只是不会显示我在自定义验证器中设置的消息。
编辑
我还尝试在自定义验证器的 aspx 代码中执行 Visible="true",但它仍然不会显示错误消息,并且在开发人员工具包中将其显示为隐藏。
【问题讨论】:
-
“很遗憾,我不能给你看代码,所以我只能解释一下这个问题。”您能否举一个您可以展示的简化示例?
-
您是否已单步执行代码并设置断点以单步执行验证例程?我还将验证页面在 page_load 事件期间是否被标记为无效。
-
@Tim - 是的,我通过调试器,看到它通过 onValidationServer 方法并设置为 false。在 btn 提交事件中有 Page.IsValid 检查页面是否有效。由于页面无效,它不会超过这一点。我可以放一个 Page.IsValid 并查看 page_load 中的内容
-
@MarkByers - 我想到了这一点,但不确定是否可以重新创建它,因为自定义验证器所在的页面中发生了很多事情,而且我没有编写此代码,所以不确定我是否能够重新创建场景。
-
只是为了 yuks - 也许在验证器上明确设置你的前景色和背景色?
标签: c# asp.net .net validation