0
我使用沒有數據源的ListGrid。我對某些領域使用驗證器。 但是然後我添加新記錄,直到我更改新記錄中的值時才進行驗證。 我不想使用grid.startEditingNew()
,因爲如果我不更改它們,它們沒有Record實例。在SmartGWT ListGrid中驗證新行
ListGrid grid = new ListGrid();
grid.setCanEdit(true);
ListGridField field1 = new ListGridField("attr1", "Name1");
ListGridField field2 = new ListGridField("attr2", "Name2");
CustomValidator validator = new CustomValidator() {
@Override
protected boolean condition(Object value) {
Logger.log("Validate: " + value);
return true;
}
};
field1.setValidators(validator);
field2.setValidators(validator);
grid.setFields(field1, field2);
Label addButton = new Label();
//...
addButton.setTooltip("Add");
addButton.addClickHandler(new ClickHandler() {
public void onClick(final ClickEvent clickEvent) {
ListGridRecord record = new ListGridRecord();
grid.addData(record);
// we can use grid.startEditingNew() instead
}
});
如何強制驗證新行?調用grid.validateRow(grid.getRecords().length - 1)
不會導致調用驗證者。