Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt GXT NumberField不可编辑_Gwt_Gxt - Fatal编程技术网

Gwt GXT NumberField不可编辑

Gwt GXT NumberField不可编辑,gwt,gxt,Gwt,Gxt,我使用的是Gxt-2.2.0和GWT2.0。和GXT numberfiles不可编辑 我可以为可编辑的数字字段做什么 下面的代码是没有希望的 NumberField field = new NumberField(); field.setEditable(true); 它是可编辑的,您的代码必须简单地工作,数字字段实现似乎存在问题 它只接受0-9中的字符,对于浏览器中的某些区域设置,它发送的字符不是0-9。您可以尝试其他浏览器(在我的例子中,它在IE中工作,而不是在Firefox中) 现在要解

我使用的是Gxt-2.2.0和GWT2.0。和GXT numberfiles不可编辑

我可以为可编辑的数字字段做什么

下面的代码是没有希望的

NumberField field = new NumberField();
field.setEditable(true);

它是可编辑的,您的代码必须简单地工作,数字字段实现似乎存在问题

它只接受0-9中的字符,对于浏览器中的某些区域设置,它发送的字符不是0-9。您可以尝试其他浏览器(在我的例子中,它在IE中工作,而不是在Firefox中)

现在要解决您的问题,您必须通过调用设置它接受的字符:

// They are by default 0-9 change them to your locale numbers
field.setBaseChars("0123456789");
如果不知道区域设置数字字符是什么,可以在NumberField类(inspect key variable)中使用此方法进行调试:


我从GXT开发团队那里得到了答案。 简单的解决方案是将Gxt-2.2.0升级到Gxt-2.2.1。这次升级解决了这个问题


谢谢,但我知道NumberField只接受数字,我尝试了textfield,他们接受数字,但numberfields不接受。尽管如此,我还是尝试了挫折法,但它并不能解决我的问题(尝试使用上述方法进行调试以了解发生了什么;;对于setBaseChars,不要将其与0-9个字符一起使用,它们是默认值,而应使用您的区域设置字符。感谢您的评论,我解决了将GXT升级到2.2.1版的问题
protected void onKeyPress(FieldEvent fe) {
    super.onKeyPress(fe);
    char key = (char) fe.getKeyCode();
    if (fe.isSpecialKey(lastKeyCode) || lastKeyCode == KeyCodes.KEY_BACKSPACE
        || lastKeyCode == KeyCodes.KEY_DELETE || fe.isControlKey()) {
      return;
    }
    if (!allowed.contains(key)) {
      fe.stopEvent();
    }
  }