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

发布于 2024-11-08 03:11:28 字数 181 浏览 8 评论 0原文

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

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

我想限制用户键入时的输入,以便他/她最多只能输入两位小数。

最好的, ——托马斯

How can I limit the number of decimal places a user can enter in a GXT grid cell.

I can format the column config via column.setNumberFormat(...) but this just rounds the value to the defined format, e.g. #.##, and the user can enter more than two decimal places.

I would like to limit the input as the users types, so that he/she can only enter a max of two decimal places.

Best,
-- Thomas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱*していゐ 2024-11-15 03:11:28

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

            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);

You have to implement a custom Validator and add it to the field:

            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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文