我使用的是Sharepoint 2010。在visual studio 2010中使用自定义字段。
我创建了一个自定义字段。这个特殊的字段是datetime字段("终止日期")。我希望它失败验证,如果它是空白和另一个字段("合同终止"等于yes)。
所以我之前用计算字段做了这个。这是有效的,但它把验证错误在编辑表单的顶部,而不是旁边的"终止日期"字段,我想要它。就像在自定义字段中使用GetValidatedString验证字段失败时的情况一样。
因为它在错误的地方,我做了一个自定义字段。但是因为日期是空的,它永远不会命中GetValidatedString方法。我错过什么了吗?是否有另一种方法让它失败验证,并在"终止日期"字段旁边,如果"终止日期"字段是空白的?
我也尝试使用事件接收器解决方案…这里的问题是,它也会把错误信息放在顶部。而不是在终止日期字段旁边。
建议吗?
对于自定义字段,您可以重写FieldRenderingControl,编写自己的FieldControl。如果你不使用这个自定义字段的下落列表,你可以继承你的字段控制从DateTimeField和覆盖验证方法,例如:
public override void Validate()
{
base.Validate();
if (IsValid)
{
if (!(your validation))
{
IsValid = false;
ErrorMessage = “youe message”;
}
}
}