This example demonstrates how to validate data via the DXValidationProvider component. In this example, validation rules (built-in and custom) are created in code, and associated with editors using the SetValidationRule method.
The CustomValidationRule class represents a custom validation rule that checks whether the editor's value begins with "Dr.", "Mr.", "Mrs.", "Miss" or "Ms.".
C# |
using DevExpress.XtraEditors.DXErrorProvider;
dxValidationProvider1.ValidationMode = ValidationMode.Manual;
ConditionValidationRule containsValidationRule = new ConditionValidationRule();
containsValidationRule.ConditionOperator = ConditionOperator.Contains;
containsValidationRule.Value1 = '@';
containsValidationRule.ErrorText = "Please enter a valid email";
containsValidationRule.ErrorType = ErrorType.Warning;
CompareAgainstControlValidationRule compValidationRule =
new CompareAgainstControlValidationRule();
compValidationRule.Control = notEmptyTextEdit;
compValidationRule.CompareControlOperator = CompareControlOperator.Equals;
compValidationRule.ErrorText = "Please enter a value that equals to the first editor's value";
compValidationRule.CaseSensitive = true;
CustomValidationRule customValidationRule = new CustomValidationRule();
customValidationRule.ErrorText = "Please enter a valid person name";
customValidationRule.ErrorType = ErrorType.Warning;
dxValidationProvider1.SetValidationRule(containsTextEdit, containsValidationRule);
dxValidationProvider1.SetValidationRule(compareTextEdit, compValidationRule);
dxValidationProvider1.SetValidationRule(customTextEdit, customValidationRule);
private void buttonOk_Click(object sender, EventArgs e) {
dxValidationProvider1.Validate();
}
public class CustomValidationRule : ValidationRule {
public override bool Validate(Control control, object value) {
string str = (string)value;
string[] values = new string[] { "Dr.", "Mr.", "Mrs.", "Miss", "Ms." };
bool res = false;
foreach(string val in values) {
if(ValidationHelper.Validate(str, ConditionOperator.BeginsWith,
val, null, null, false)) {
string name = str.Substring(val.Length);
if(name.Trim().Length > 0) res = true;
}
}
return res;
}
}
|
VB |
Imports DevExpress.XtraEditors.DXErrorProvider
dxValidationProvider1.ValidationMode = ValidationMode.Manual
Dim containsValidationRule As New ConditionValidationRule()
containsValidationRule.ConditionOperator = ConditionOperator.Contains
containsValidationRule.Value1 = "@"
containsValidationRule.ErrorText = "Please enter a valid email"
containsValidationRule.ErrorType = ErrorType.Warning
Dim compValidationRule As New CompareAgainstControlValidationRule()
compValidationRule.Control = notEmptyTextEdit
compValidationRule.CompareControlOperator = CompareControlOperator.Equals
compValidationRule.ErrorText = "Please enter a value that equals to the first editor's value"
compValidationRule.CaseSensitive = True
Dim customValidationRule As New CustomValidationRule()
customValidationRule.ErrorText = "Please enter a valid person name"
customValidationRule.ErrorType = ErrorType.Warning
dxValidationProvider1.SetValidationRule(containsTextEdit, containsValidationRule)
dxValidationProvider1.SetValidationRule(compareTextEdit, compValidationRule)
dxValidationProvider1.SetValidationRule(customTextEdit, customValidationRule)
Private Sub ButtonOK_Click(sender As Object, e As EventArgs) Handles ButtonOK.Click
dxValidationProvider1.Validate()
End Sub
Public Class CustomValidationRule
Inherits ValidationRule
Public Overrides Function Validate(control As Control, value As Object) As Boolean
Dim str As String = CStr(value)
Dim values() As String = {"Dr.", "Mr.", "Mrs.", "Miss", "Ms."}
Dim res As Boolean = False
Dim val As String
For Each val In values
If ValidationHelper.Validate(str, ConditionOperator.BeginsWith, _
val, Nothing, Nothing, False) Then
Dim name As String = str.Substring(val.Length)
If name.Trim().Length > 0 Then
res = True
End If
End If
Next val
Return res
End Function
End Class
|