如何限制用户可以在GXT网格单元格中输入的小数位数。
我可以通过column.setNumberFormat(...)格式化列配置,但这只是将值舍入到定义的格式,例如#。##,用户可以输入两位以上的小数位。
我想将输入限制为用户类型,这样他/她最多只能输入两位小数。
最佳, - 托马斯
答案 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);