# GC.Spread.Sheets.DataValidation.DefaultDataValidator

## Content

# Class: DefaultDataValidator

[Sheets](../modules/GC.Spread.Sheets).[DataValidation](../modules/GC.Spread.Sheets.DataValidation).DefaultDataValidator

## Table of contents

### Constructors

- [constructor](GC.Spread.Sheets.DataValidation.DefaultDataValidator#constructor)

### Methods

- [comparisonOperator](GC.Spread.Sheets.DataValidation.DefaultDataValidator#comparisonoperator)
- [condition](GC.Spread.Sheets.DataValidation.DefaultDataValidator#condition)
- [errorMessage](GC.Spread.Sheets.DataValidation.DefaultDataValidator#errormessage)
- [errorStyle](GC.Spread.Sheets.DataValidation.DefaultDataValidator#errorstyle)
- [errorTitle](GC.Spread.Sheets.DataValidation.DefaultDataValidator#errortitle)
- [getValidList](GC.Spread.Sheets.DataValidation.DefaultDataValidator#getvalidlist)
- [highlightStyle](GC.Spread.Sheets.DataValidation.DefaultDataValidator#highlightstyle)
- [ignoreBlank](GC.Spread.Sheets.DataValidation.DefaultDataValidator#ignoreblank)
- [inCellDropdown](GC.Spread.Sheets.DataValidation.DefaultDataValidator#incelldropdown)
- [inputMessage](GC.Spread.Sheets.DataValidation.DefaultDataValidator#inputmessage)
- [inputTitle](GC.Spread.Sheets.DataValidation.DefaultDataValidator#inputtitle)
- [isValid](GC.Spread.Sheets.DataValidation.DefaultDataValidator#isvalid)
- [preciseCompareDate](GC.Spread.Sheets.DataValidation.DefaultDataValidator#precisecomparedate)
- [reset](GC.Spread.Sheets.DataValidation.DefaultDataValidator#reset)
- [showErrorMessage](GC.Spread.Sheets.DataValidation.DefaultDataValidator#showerrormessage)
- [showInputMessage](GC.Spread.Sheets.DataValidation.DefaultDataValidator#showinputmessage)
- [type](GC.Spread.Sheets.DataValidation.DefaultDataValidator#type)
- [value1](GC.Spread.Sheets.DataValidation.DefaultDataValidator#value1)
- [value2](GC.Spread.Sheets.DataValidation.DefaultDataValidator#value2)

## Constructors

### <a id="constructor" name="constructor"></a> constructor

• **new DefaultDataValidator**(`condition?`)

Represents a data validator.

**`example`**
```
//This example validates the cell data.
spread.options.highlightInvalidData = true;
var dv = GC.Spread.Sheets.DataValidation.createTextLengthValidator(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.greaterThan, 5);
activeSheet.setDataValidator(0, 0, 1, 1, dv, GC.Spread.Sheets.SheetArea.viewport);
activeSheet.setValue(0, 0, "abcf");
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `condition?` | [`Condition`](GC.Spread.Sheets.ConditionalFormatting.Condition) |

## Methods

### <a id="comparisonoperator" name="comparisonoperator"></a> comparisonOperator

▸ **comparisonOperator**(`value?`): `any`

Gets or sets the comparison operator.

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | [`ComparisonOperators`](../enums/GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators) |

#### Returns

`any`

If no value is set, returns the comparison operator; otherwise, returns the data validator.

___

### <a id="condition" name="condition"></a> condition

▸ **condition**(`value?`): `any`

Gets or sets the condition to validate.

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | [`Condition`](GC.Spread.Sheets.ConditionalFormatting.Condition) |

#### Returns

`any`

If no value is set, returns the condition to validate; otherwise, returns the data validator.

___

### <a id="errormessage" name="errormessage"></a> errorMessage

▸ **errorMessage**(`value?`): `any`

Gets or sets the error message.

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | `string` |

#### Returns

`any`

If no value is set, returns the error message; otherwise, returns the data validator.

___

### <a id="errorstyle" name="errorstyle"></a> errorStyle

▸ **errorStyle**(`value?`): `any`

Gets or sets the error style to display.

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | [`ErrorStyle`](../enums/GC.Spread.Sheets.DataValidation.ErrorStyle) |

#### Returns

`any`

If no value is set, returns the error style to display; otherwise, returns the data validator.

___

### <a id="errortitle" name="errortitle"></a> errorTitle

▸ **errorTitle**(`value?`): `any`

Gets or sets the error title.

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | `string` |

#### Returns

`any`

If no value is set, returns the error title; otherwise, returns the data validator.

___

### <a id="getvalidlist" name="getvalidlist"></a> getValidList

▸ **getValidList**(`evaluator`, `baseRow`, `baseColumn`): `any`[]

Returns the valid data lists if the Data validation type is list; otherwise, returns null.

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `evaluator` | `Object` | The object that can evaluate a condition. |
| `baseRow` | `number` | The base row. |
| `baseColumn` | `number` | The base column. |

#### Returns

`any`[]

The valid data lists or null.

___

### <a id="highlightstyle" name="highlightstyle"></a> highlightStyle

▸ **highlightStyle**(`style?`): `any`

Get or Sets the invalid data cell highlight style.

**`example`**
```
//This example uses the highlightStyle method.
sheet.setValue(1, 1, "sss");
var dv = GC.Spread.Sheets.DataValidation.createListValidator('Fruit,Vegetable,Food');
dv.highlightStyle({
   type:GC.Spread.Sheets.DataValidation.HighlightType.dogEar,
   color:'blue',
   position:GC.Spread.Sheets.DataValidation.HighlightPosition.topLeft
});
sheet.setDataValidator(1,1, dv);
spread.options.highlightInvalidData = true;
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `style?` | [`IHighLightStyle`](../interfaces/GC.Spread.Sheets.DataValidation.IHighLightStyle) |

#### Returns

`any`

If no value is set, returns the hignlight style object; otherwise, returns the data validator.

___

### <a id="ignoreblank" name="ignoreblank"></a> ignoreBlank

▸ **ignoreBlank**(`value?`): `any`

Gets or sets whether to ignore an empty value.

**`example`**
```
//This example uses the IgnoreBlank method.
var nCondition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.cellValueCondition);
nCondition.compareType(GC.Spread.Sheets.ConditionalFormatting.GeneralComparisonOperators.equalsTo);
nCondition.expected(0);
//When the option is false, the validation fails and the red alert is displayed.
//When the option is true, the blank cell is treated as zero and the validation is successful.
nCondition.treatNullValueAsZero(false);
var validator = new GC.Spread.Sheets.DataValidation.DefaultDataValidator(nCondition);
validator.type(GC.Spread.Sheets.DataValidation.CriteriaType.custom);
validator.ignoreBlank(false);
activeSheet.getCell(0, 0, GC.Spread.Sheets.SheetArea.viewport).validator(validator);
spread.options.highlightInvalidData = true;
activeSheet.setValue(0, 0, null);
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | `boolean` |

#### Returns

`any`

If no value is set, returns whether to ignore the empty value; otherwise, returns the data validator.

___

### <a id="incelldropdown" name="incelldropdown"></a> inCellDropdown

▸ **inCellDropdown**(`value?`): `any`

Gets or sets whether to display a drop-down button.

**`example`**
```
//This example uses the inCellDropdown method.
spread.options.highlightInvalidData = true;
var dv = GC.Spread.Sheets.DataValidation.createListValidator("1,2,3");
dv.showInputMessage(true);
dv.inputMessage("Value must be 1,2 or 3");
dv.inputTitle("tip");
dv.inCellDropdown(true);
activeSheet.setDataValidator(1,1,1,1,dv,GC.Spread.Sheets.SheetArea.viewport);
var validList = activeSheet.getDataValidator(1, 1).getValidList(activeSheet, 1, 1);
alert(validList);
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | `boolean` |

#### Returns

`any`

If no value is set, returns whether to display a drop-down button; otherwise, returns the data validator.

___

### <a id="inputmessage" name="inputmessage"></a> inputMessage

▸ **inputMessage**(`value?`): `any`

Gets or sets the input message.

**`example`**
```
spread.options.highlightInvalidData = true;
var dv = GC.Spread.Sheets.DataValidation.createListValidator("1,2,3");
dv.showInputMessage(true);
dv.inputMessage("Value must be 1,2 or 3");
dv.inputTitle("tip");
activeSheet.setDataValidator(1,1,1,1,dv,GC.Spread.Sheets.SheetArea.viewport);
alert(activeSheet.getDataValidator(1,1).getValidList(activeSheet,1,1));
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | `string` |

#### Returns

`any`

If no value is set, returns the input message; otherwise, returns the data validator.

___

### <a id="inputtitle" name="inputtitle"></a> inputTitle

▸ **inputTitle**(`value?`): `any`

Gets or sets the input title.

**`example`**
```
spread.options.highlightInvalidData = true;
var dv = GC.Spread.Sheets.DataValidation.createListValidator("1,2,3");
dv.showInputMessage(true);
dv.inputMessage("Value must be 1,2 or 3");
dv.inputTitle("tip");
activeSheet.setDataValidator(1,1,1,1,dv,GC.Spread.Sheets.SheetArea.viewport);
alert(activeSheet.getDataValidator(1,1).getValidList(activeSheet,1,1));
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | `string` |

#### Returns

`any`

If no value is set, returns the input title; otherwise, returns the data validator.

___

### <a id="isvalid" name="isvalid"></a> isValid

▸ **isValid**(`evaluator`, `baseRow`, `baseColumn`, `actual`): `boolean`

Determines whether the current value is valid.

**`example`**
```
sheet.setArray(0, 0,
    [
        [ 3.4 ],
        [ 102.8 ]
    ]);
var expression1 = 1.1;
var expression2 = 101.2;
var dv = GC.Spread.Sheets.DataValidation.createNumberValidator(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between, expression1, expression2, false);
sheet.getCell(0, 0, GC.Spread.Sheets.SheetArea.viewport).validator(dv);
dv = sheet.getCell(0, 0, GC.Spread.Sheets.SheetArea.viewport).validator(); // Limitation of SDM, the dv is copied when set to style.
console.log(dv.isValid(sheet, 0, 0, 3)); // true
console.log(dv.isValid(sheet, 0, 0, 1)); // false
console.log(dv.isValid(sheet, 0, 0, 101)); // true
console.log(dv.isValid(sheet, 0, 0, 0)); // false
console.log(dv.isValid(sheet, 0, 0, 120.0)); // false
```

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `evaluator` | `Object` | The evaluator. |
| `baseRow` | `number` | The base row. |
| `baseColumn` | `number` | The base column. |
| `actual` | `Object` | The current value. |

#### Returns

`boolean`

`true` if the value is valid; otherwise, `false`.

___

### <a id="precisecomparedate" name="precisecomparedate"></a> preciseCompareDate

▸ **preciseCompareDate**(`value?`): `any`

Gets or sets whether to compare whole day or precise date time.

**`example`**
```
//This example uses the preciseCompareDate method.
var dateCondition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.dateCondition);
dateCondition.compareType(GC.Spread.Sheets.ConditionalFormatting.DateCompareType.after);
dateCondition.expected(new Date(2020, 4, 22, 6));
//When the option is false, the validator compares the whole day, and they are the same, so validation fails and the red alert is displayed.
//When the option is true, the date time 7 o'clock is greater than 6 o'clock, so the result is successful.
var validator = new GC.Spread.Sheets.DataValidation.DefaultDataValidator(dateCondition);
validator.type(GC.Spread.Sheets.DataValidation.CriteriaType.date);
validator.preciseCompareDate(true);
activeSheet.getCell(0, 0, GC.Spread.Sheets.SheetArea.viewport).validator(validator);
spread.options.highlightInvalidData = true;
activeSheet.setValue(0, 0, new Date(2020, 4, 22, 7));
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | `boolean` |

#### Returns

`any`

If no value is set, returns compare whole day or precise date time; otherwise, returns the data validator.

___

### <a id="reset" name="reset"></a> reset

▸ **reset**(): `void`

Resets the data validator.

**`example`**
```
//This example uses the reset method.
var nCondition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.cellValueCondition);
nCondition.compareType(GC.Spread.Sheets.ConditionalFormatting.GeneralComparisonOperators.equalsTo);
nCondition.expected(0);
//When the option is false, the validation fails and the red alert is displayed.
//When the option is true, the blank cell is treated as zero and the validation is successful.
nCondition.treatNullValueAsZero(false);
var validator = new GC.Spread.Sheets.DataValidation.DefaultDataValidator(nCondition);
validator.type(GC.Spread.Sheets.DataValidation.CriteriaType.custom);
validator.ignoreBlank(false);
activeSheet.getCell(0, 0, GC.Spread.Sheets.SheetArea.viewport).validator(validator);
spread.options.highlightInvalidData = true;
activeSheet.setValue(0, 0, null);
validator.reset();
```

#### Returns

`void`

___

### <a id="showerrormessage" name="showerrormessage"></a> showErrorMessage

▸ **showErrorMessage**(`value?`): `any`

Gets or sets whether to display an error message.

**`example`**
```
spread.options.highlightInvalidData = true;
//The formula validator is valid if the formula condition returns true.
var dv = GC.Spread.Sheets.DataValidation.createFormulaValidator("A1&gt;0");
dv.showInputMessage(true);
dv.inputMessage("Enter a value greater than 0 in A1.");
dv.inputTitle("Tip");
dv.showErrorMessage(true);
dv.errorMessage("Incorrect Value");
activeSheet.setDataValidator(0, 0, 1, 1, dv, GC.Spread.Sheets.SheetArea.viewport);
//bind
activeSheet.bind(GC.Spread.Sheets.Events.ValidationError, function (sender, args) {
    if (args.validator.showErrorMessage()) {
        if (confirm(args.validator.errorMessage())) {
            args.validationResult = GC.Spread.Sheets.DataValidation.DataValidationResult.retry;
        } else {
            args.validationResult = GC.Spread.Sheets.DataValidation.DataValidationResult.forceApply;
        }
    }
});
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | `boolean` |

#### Returns

`any`

If no value is set, returns whether to display an error message; otherwise, returns the data validator.

___

### <a id="showinputmessage" name="showinputmessage"></a> showInputMessage

▸ **showInputMessage**(`value?`): `any`

Gets or sets whether to display the input title and input message.

**`example`**
```
spread.options.highlightInvalidData = true;
var dv = GC.Spread.Sheets.DataValidation.createListValidator("1,2,3");
dv.showInputMessage(true);
dv.inputMessage("Value must be 1,2 or 3");
dv.inputTitle("tip");
activeSheet.setDataValidator(1,1,1,1,dv,GC.Spread.Sheets.SheetArea.viewport);
alert(activeSheet.getDataValidator(1,1).getValidList(activeSheet,1,1));
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | `boolean` |

#### Returns

`any`

If no value is set, returns whether to display the input title and input message; otherwise, returns the data validator.

___

### <a id="type" name="type"></a> type

▸ **type**(`value?`): `any`

Gets or sets the criteria type of this data validator.

#### Parameters

| Name | Type |
| :------ | :------ |
| `value?` | [`CriteriaType`](../enums/GC.Spread.Sheets.DataValidation.CriteriaType) |

#### Returns

`any`

If no value is set, returns the criteria type of this data validator; otherwise, returns the data validator.

___

### <a id="value1" name="value1"></a> value1

▸ **value1**(`baseRow?`, `baseColumn?`): `any`

Gets the first value of the data validation.

**`example`**
```
//This example validates a cell value.
var nCondition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.cellValueCondition);
nCondition.compareType(GC.Spread.Sheets.ConditionalFormatting.GeneralComparisonOperators.equalsTo);
nCondition.expected(0);
//When the option is false, the validation fails and the red alert is displayed.
//When the option is true, the blank cell is treated as zero and the validation is successful.
nCondition.treatNullValueAsZero(false);
var validator = new GC.Spread.Sheets.DataValidation.DefaultDataValidator(nCondition);
validator.type(GC.Spread.Sheets.DataValidation.CriteriaType.custom);
validator.ignoreBlank(false);
activeSheet.getCell(0, 0, GC.Spread.Sheets.SheetArea.viewport).validator(validator);
spread.options.highlightInvalidData = true;
activeSheet.setValue(0, 0, null);
alert(validator.value1());
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `baseRow?` | `number` |
| `baseColumn?` | `number` |

#### Returns

`any`

The first value.

___

### <a id="value2" name="value2"></a> value2

▸ **value2**(`baseRow?`, `baseColumn?`): `any`

Gets the second value of the data validation.

**`example`**
```
//This example validates a cell value.
var nCondition = new GC.Spread.Sheets.ConditionalFormatting.Condition(GC.Spread.Sheets.ConditionalFormatting.ConditionType.cellValueCondition);
nCondition.compareType(GC.Spread.Sheets.ConditionalFormatting.GeneralComparisonOperators.equalsTo);
nCondition.expected(0);
//When the option is false, the validation fails and the red alert is displayed.
//When the option is true, the blank cell is treated as zero and the validation is successful.
nCondition.treatNullValueAsZero(false);
var validator = new GC.Spread.Sheets.DataValidation.DefaultDataValidator(nCondition);
validator.type(GC.Spread.Sheets.DataValidation.CriteriaType.custom);
validator.ignoreBlank(false);
activeSheet.getCell(0, 0, GC.Spread.Sheets.SheetArea.viewport).validator(validator);
spread.options.highlightInvalidData = true;
activeSheet.setValue(0, 0, null);
alert(validator.value2());
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `baseRow?` | `number` |
| `baseColumn?` | `number` |

#### Returns

`any`

The second value.
