BaseFieldControl.IsValid Property

Gets or sets a value that indicates whether the current value of the Value property is valid.

Namespace:  Microsoft.SharePoint.WebControls
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: No

public bool IsValid { get; set; }

Property Value

Type: System.Boolean
true if Value is valid; otherwise, false. The default is true.



Value is the value of the control in the UI, not the underlying value (which is ItemFieldValue) of the SPField() object that has the BaseFieldControl as its FieldRenderingControl property. Use IsValid only when you need validation of the UI value. To validate ItemFieldValue, use the GetValidatedString().

The following is an example of an override of the Validate method that sets IsValid. It first checks to see if the current control mode is Display, in which case it does not matter if the field is invalid because it cannot be changed anyway. The method also looks to see if the Value property is already known to be invalid by checking the IsValid property. If either of those checks is true, it does nothing. If neither is true, the method calls the base Validate which will set IsValid to false if it finds anything wrong with the Value property and set an appropriate ErrorMessage. (The BaseFieldControl.Validate method does nothing, so if the class whose Validate method is being overridden is derived directly from BaseFieldControl, then the call to the base Validate method can be omitted.) Finally, the method checks the value of Required and enforces that value.

public override void Validate()
    if (ControlMode == SPControlMode.Display || !IsValid)


    if (Field.Required && 
        (Value == null || Value.ToString().Length == 0))
        this.ErrorMessage = Field.Title + " must have a value."
        IsValid = false;