简而言之,假设我有两个文本框,都有RequiredFieldValidator
个控件。如果两个值都无效,我想在ValidationSummary
控件中只显示一个字符串,如果只有一个字符串无效,我想在RequiredFieldValidator
的位置显示一个字符串。
目前,我所拥有的只是工作但有点混乱。想知道这样做是否更容易,更优雅。
if ((!Text1Valid.IsValid) && (!Text2Valid.IsValid))
{
// Make sure the individual validator shows nothing and ValidationSummary is visible.
Text1Valid.Display = ValidatorDisplay.None;
Text2Valid.Display = ValidatorDisplay.None;
ValidSummary.Visible = true;
Text1Valid.ErrorMessage = "Both of the values are wrong!";
Text2Valid.ErrorMessage = String.Empty;
}
else
{
// Single validation strings visible and ValidationSummary hidden.
Text1Valid.Display = ValidatorDisplay.Dynamic;
Text2Valid.Display = ValidatorDisplay.Dynamic;
ValidSummary.Visible = false;
Text1Valid.ErrorMessage = "The value is wrong.";
Text2Valid.ErrorMessage = "The value is wrong.";
}
答案 0 :(得分:0)
绝对没有一种开箱即用的方式可以以我所知道的更轻松/优雅的方式做你想做的事。就自定义代码而言,获得一个非常优雅的解决方案有点困难,因为验证逻辑是非常耦合的。我完全可以想象你在每个输入上有各种验证器,不同数量的“链接”输入和不同类型的输入元素的情况。如果这是一次性的情况,类似于你的解决方案可能没问题。如果这是您项目的反复出现的主题,那么您可能想要考虑花多少时间来投资更强大的解决方案。