限制用户可以在GXT网格单元格中输入的小数位数

时间:2011-05-18 06:18:45

标签: gxt

如何限制用户可以在GXT网格单元格中输入的小数位数。

我可以通过column.setNumberFormat(...)格式化列配置,但这只是将值舍入到定义的格式,例如#。##,用户可以输入两位以上的小数位。

我想将输入限制为用户类型,这样他/她最多只能输入两位小数。

最佳, - 托马斯

1 个答案:

答案 0 :(得分:0)

您必须实现自定义验证程序并将其添加到字段中:

            final ColumnConfig config = new ColumnConfig();
            config.setNumberFormat(NumberFormat.getFormat("#.##"));
            final NumberField field = new NumberField();
            field.setPropertyEditorType(Float.class); // needed to convert from String to Number - default ist Double
            field.setValidator(new com.extjs.gxt.ui.client.widget.form.Validator(){
                public String validate(Field<?> field, String value) {
                    if(value != null){
                         final int index = value.indexOf('.');
                         if(index > -1 && index < value.length() - 3){
                             return "Maximum number of digits is 2!";
                         }
                    }
                    return null;
                }
            });
            final CellEditor cellEditor = new CellEditor(field);
            config.setEditor(cellEditor);