我想扩大信标,使我能够使一名有效者依赖另一人。 我的情况是,我们必须在一个文本箱中确定一个日期。 通常,我只使用需要配备的外勤人员(以确保提供日期)、比较仪(确保日期是日期)和最后一台测地仪(确保日期在规定时限内)。
问题在于,有效器并不互相依赖,因此,如果我们真的想要每个有效器看到所有三条电文是最为相关的信息,即如果它们在文本箱中输入“abc”,那么就不宜向他们表明该日期不是有效范围的信息(尽管在技术上我假定情况确实如此)。
目前,为了提供这种功能,我们使用一个海关验证器,在服务器内将所有三个验证都验证了事件记录器,并根据验证失败的情况,从方案上改变错误信息。
我愿将这一比喻标准化,因为在这个申请中,情况就是如此。 如果我能够使有效者相互依赖,从而解决问题,并且使我们能够利用客户的验证,而不是进行退却,特别是处理习俗验证。
想法是,如果“主人”有效,则一名有效人依赖另一人,则如果主人无效,则该名有效人将进行正常的验证(EvaluateIsalid())。
我提出了以下解决办法,继承了框架中已经提供的各种验证人控制。
public class RequiredFieldDependentValidator : RequiredFieldValidator
{
[Description("The validation control to depend on for determining if validation should occur")]
public string ValidationControlToDependOn
{
get
{
object obj = ViewState["ValidationControlToDependOn"];
if (obj != null) return (string) obj;
return null;
}
set
{
Control control = FindControl(value);
if (control is IValidator)
ViewState["ValidationControlToDependOn"] = value;
else
throw new HttpException("ValidationControlToDependOn is not a validation control");
}
}
protected override bool EvaluateIsValid()
{
IValidator validationControlToDependOn = FindControl(ValidationControlToDependOn) as IValidator;
if(validationControlToDependOn != null)
{
return !validationControlToDependOn.IsValid || base.EvaluateIsValid();
}
return base.EvaluateIsValid();
}
目前,我刚刚将其编号为所需外勤人员,理想的是,我要为所有有效人员提供这一功能,但我看不出这样做的方法,而不必将上述代码复制为每一类有效操作员的类似类别。
是否有办法,我可以“集中”这一法典,并且很容易在有效器中使用,而不必从零纸上书写整个有效器,这样我就可以改变其继承的类别。
Cheers,