Data Validation
From Documentation
Available in ZK Spreadsheet EE only
Purpose
Data validation is an invaluable feature when a workbook is shared among other users in an organization to make sure that the data entered in the workbook is accurate and consistent.
Data Validation
Validation message
Prompt
Error alert
Clicking the cancel button will remove the editing value
Clicking the retry button allow users to continue editing the cell value without emptying editing value
ZUML
<div apply="org.zkoss.zssessentials.config.ValidationComposer" width="100%" vflex="1">
<combobox id="deparmentCombobox">
</combobox>
<spreadsheet id="spreadsheet" src="/WEB-INF/excel/config/validation.xlsx"
maxrows="100" maxcolumns="20"
width="100%" vflex="1">
</spreadsheet>
</div>
Composer
The composer prepare data from DataValidation, user could input a value from combobox.
private DataValidation getDataValidation() {
return sheet.getDataValidation(DATA_VALIDATION_ROW, DATA_VALIDATION_COL);
}
private void initCombobox() {
DataValidation dataValidation = getDataValidation();
DataValidationConstraint constraint = dataValidation.getValidationConstraint();
switch (constraint.getValidationType()) {
case ValidationType.LIST:
ListModelList model = new ListModelList(constraint.getExplicitListValues());
deparmentCombobox.setModel(model);
break;
}
//Add illegal item
((ListModelList) deparmentCombobox.getModel()).add("Illegal cell value");
}
public void onSelect$deparmentCombobox() {
String cellValue = deparmentCombobox.getSelectedItem().getLabel();
boolean validInput = spreadsheet.validate(sheet, DATA_VALIDATION_ROW, DATA_VALIDATION_COL, cellValue, null);
if (validInput) {
Ranges.range(sheet, DATA_VALIDATION_ROW, DATA_VALIDATION_COL).setEditText(cellValue);
}
}
View complete source of ZUML validation.zul
View complete source of composer ValidationComposer.java
Version History
Version | Date | Content |
---|---|---|
Since 2.2.0 | January, 2012 | Support Data Validation |
All source code listed in this book is at Github.