我有一个表单的三个部分,包含在jquery选项卡中。我希望每个选项卡都有自己的验证器,这样如果该表单上存在验证错误,则很容易看出用户需要重新执行哪些表单。我遇到的问题是当我尝试这样的事情时:
private void ValidateTabOne()
{
Page.Validate("t1");
if (!Page.IsValid)
cvt1.IsValid = false;
}
private void ValidateTabTwo()
{
Page.Validate("t2");
if (!Page.IsValid)
cvt2.IsValid = false;
}
protected void btnSave_Click(object sender, EventArgs e)
{
ValidateTabOne();
ValidateTabTwo();
if (Page.IsValid)
{
//do the save
}
}
如果t1组中的任何内容无效(无论t2组是否有效),cvt2将始终无效,因为我首先验证(" t1")。
我仍然喜欢在后面的代码中执行此操作的方法。如何一次验证一个组,或者#34;重置"验证以排除Page.IsValid检查中的先前组?
我知道最坏的情况我可以写一个巨大的声明来检查IsValid的每个验证器,但更愿意使用验证组。
答案 0 :(得分:0)
我现在发现这样做的最好方法是使用Page.GetValidators:
foreach (IValidator v in Page.GetValidators("t1"))
{
if (!v.IsValid)
{
cvt1.IsValid = false;
return;
}
}
cvt1.IsValid = true;
事先我进行自定义验证,这只是检查以确保已经考虑了所有必需的验证。