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)
Syntax
'Declaration
Public Property IsValid As Boolean
Get
Set
'Usage
Dim instance As BaseFieldControl
Dim value As Boolean
value = instance.IsValid
instance.IsValid = value
public bool IsValid { get; set; }
Property value
Type: System.Boolean
true if Value is valid; otherwise, false. The default is true.
Implements
Remarks
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().
Examples
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)
{
return;
}
base.Validate();
if (Field.Required &&
(Value == null || Value.ToString().Length == 0))
{
this.ErrorMessage = Field.Title + " must have a value."
IsValid = false;
return;
}
}
Public Overrides Sub Validate()
If ControlMode = SPControlMode.Display OrElse (Not IsValid) Then
Return
End If
MyBase.Validate()
If Field.Required AndAlso (Value Is Nothing OrElse Value.ToString().Length = 0) Then
Me.ErrorMessage = Field.Title & " must have a value."
IsValid = False
Return
End If
End Sub