ASP验证器控件 - 我可以让控件占据相同的位置吗?

时间:2012-03-01 21:23:38

标签: asp.net validation

我在论坛的多个字段中使用正则表达式验证程序。他们都在检查相同的事情,为了节省空间,我希望任何验证消息都显示在页面的同一空间中。 (他们正在检查有效的电子邮件地址)。我遇到的问题是,他们是在自己的空间,顺序在页面上,我希望他们占据相同的房地产。

这可以在不诉诸回复并动态隐藏或显示页面加载控件的情况下完成吗?或者,我可以将多个控件附加到完全相同的正则表达式验证器控件吗?

3 个答案:

答案 0 :(得分:4)

如果您正在讨论验证器如何占用屏幕空间,无论它们是否显示,您可以将验证器的“显示”属性设置为“动态”。

这样,如果条目无效,它们只占用空间,验证器需要显示。这样,您可以将它们全部设置为彼此相邻,并且只有由于验证失败而显示消息的那些将占用该位置的空间。 (如果有多个,那么由于验证失败而可见的所有内容都将显示在流布局中。您可以通过在<br />'标记中添加{!1}}标记来使它们显示在彼此之上验证文本,但这有点像黑客)。

默认为“静态”,即使没有显示消息,也会强制他们占用房地产。

(我知道这可能很清楚,所以有一篇文章here有截图 - 看看图7.6和7.7)


但是,如果您希望所有消息都位于页面顶部或一个地方,而不是旁边的相关控件,那么@Sir Crispalot的答案是IMO的最佳解决方案。

答案 1 :(得分:3)

查看ValidationSummary控件。您可以将所有验证错误聚合到同一个位置并将其放在您喜欢的位置。使用 ValidationGroup 属性将 ValidationSummary 链接到各个验证控件。

您仍然可以在无效字段旁边显示整条信息(或者说只是一个星号)。

答案 2 :(得分:2)

添加动态显示为我工作。