验证SmartGWT ListGrid中的新行

时间:2013-04-17 14:42:24

标签: gwt smartgwt

我使用没有数据源的ListGrid。我在某些领域使用验证器。 但后来我添加了新记录,直到我更改新记录中的值才会进行验证。 我不想使用grid.startEditingNew(),因为如果我不更改它们,它们就没有Record实例。

    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)不会导致调用validatior。

1 个答案:

答案 0 :(得分:0)

为什么不验证设置为新Record实例的值(来自FormItems?)呢? 您可以在ListGridField和FormItem上重用验证器。