0

データソースなしで 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)は、バリデーターの呼び出しにはつながりません。

4

1 に答える 1

0

代わりに、(FormItems からの) 新しい Record インスタンスに設定されている値を検証しないのはなぜですか?
ListGridField と FormItem でバリデータを再利用できます。

于 2013-04-26T15:04:59.480 に答える