Validation 是否验证自定义Sharepoint字段(如果为空)?

Validation 是否验证自定义Sharepoint字段(如果为空)?,validation,sharepoint-2010,spfield,Validation,Sharepoint 2010,Spfield,我正在使用Sharepoint 2010。。使用visual studio 2010中的自定义字段 我创建了一个自定义字段。这是一个日期时间字段(“终止日期”)。如果它为空并且另一个字段(“合同终止”等于“是”),我希望它验证失败 所以我以前用一个计算过的场来做这个。这是可行的,但它会将验证错误放在编辑表单的顶部,而不是我想要的“终止日期”字段旁边。。与在自定义字段中使用GetValidatedString验证字段失败的情况类似 因此,因为它位于错误的位置,我创建了一个自定义字段。但是因为日期是

我正在使用Sharepoint 2010。。使用visual studio 2010中的自定义字段

我创建了一个自定义字段。这是一个日期时间字段(“终止日期”)。如果它为空并且另一个字段(“合同终止”等于“是”),我希望它验证失败

所以我以前用一个计算过的场来做这个。这是可行的,但它会将验证错误放在编辑表单的顶部,而不是我想要的“终止日期”字段旁边。。与在自定义字段中使用GetValidatedString验证字段失败的情况类似

因此,因为它位于错误的位置,我创建了一个自定义字段。但是因为日期是空的,所以它不会命中GetValidatedString方法。我错过什么了吗?如果“终止日期”字段为空,是否有其他方法使其无法通过验证并位于“终止日期”字段旁边

我也尝试过使用事件接收器解决方案。。问题是,它还会将错误消息放在顶部。。不在“终止日期”字段旁边


建议?

对于可以覆盖的自定义字段,请编写自己的。如果在行踪列表中未使用此自定义字段,则可以从继承fieldcontrol并重写方法,例如:

public override void Validate()  
{
    base.Validate();
    if (IsValid)
    {
        if (!(your validation))
        {
            IsValid = false;
            ErrorMessage = “youe message”;
        }
    }
}

好啊我来看看怎么做。。我添加了以下内容。。1,对System.Web 2的引用,使用Microsoft.SharePoint.WebControl;3,覆盖:公共覆盖BaseFieldControl FieldRenderingControl{get{return base.FieldRenderingControl;}}。。。但我还是会去写我自己的现场控制。。我希望你的建议是书面的,它会让我把valdate作为emtpy日期字段…公共覆盖BaseFieldControl FieldRenderingControl{get{BaseFieldControl control=null;control=new YourDateTimeField();/*继承自DateTimeField*/control.FieldName=base.InternalName;return control;}}}看起来像是说将其放入自定义字段类中。。我的是TerminationDateValidation.cs。。它继承自SPFieldDateTime。。(类TerminationDateValidation:SPFieldDateTime)。。。但当我使用这行时:control=newyourdatetimefield();我得到一个错误,它不接受0个参数。。它需要字段,字段名。。如果我使用这些确切的参数。。比如(ieldControl=newterminationdatevalidation(fields,fname);)。。然后它说这些参数在当前上下文中不存在..如果相反,我在项目下创建TerminationDateValidationFieldControl.cs类,它从BaseFieldContrl继承。。然后我可以把它放在我的自定义字段类中…:[SharePointPermission(SecurityAction.LinkDemand,ObjectModel=true)]公共覆盖BaseFieldControl FieldRenderingControl{get{BaseFieldControl fieldControl=null;fieldControl=new TerminationDateValidationFieldControl();return fieldControl;}}}我不确定SharePointPermission行的点是什么,或者我是否需要它。。