2016-08-17 9 views
0

したがって、カンマの前に20桁、カンマの後に16桁の制限付きカスタム番号セルを作成する必要があります。 onKeyDown()を無効にしようとしましたが、入力値を動的にチェックするのではなく、ぼかし前の値のみをチェックします。どんな助け?Sencha GXT NumberInputCellの長さ

答えて

0

このようなものを試してみてください。

import com.google.gwt.cell.client.ValueUpdater; 
import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.dom.client.Element; 
import com.google.gwt.dom.client.NativeEvent; 
import com.google.gwt.user.client.ui.RootPanel; 
import com.sencha.gxt.cell.core.client.form.NumberInputCell; 
import com.sencha.gxt.widget.core.client.form.NumberField; 
import com.sencha.gxt.widget.core.client.form.NumberPropertyEditor.IntegerPropertyEditor; 

public class NumberFieldTest implements EntryPoint { 

    @Override 
    public void onModuleLoad() { 

    IntegerPropertyEditor integerEditor = new IntegerPropertyEditor(); 

    NumberInputCell<Integer> numberFieldCell = new NumberInputCell<Integer>(integerEditor) { 
     @Override 
     protected void onKeyPress(com.google.gwt.cell.client.Cell.Context context, Element parent, Integer value, 
      NativeEvent event, ValueUpdater<Integer> valueUpdate) {   
     super.onKeyPress(context, parent, value, event, valueUpdate); 

     String textValue = getInputElement(parent).getValue(); 
     if (textValue != null && textValue.length() > 3) { 
      event.stopPropagation(); 
      event.preventDefault(); 
     } 
     } 
    }; 

    NumberField<Integer> numberField = new NumberField<Integer>(numberFieldCell, integerEditor); 

    RootPanel.get().add(numberField); 
    } 

} 
+0

ええ、まあまあの解決策です。フィールド用。セルではありません。セルは何らかのグリッドの内側で使用できるため、検証はセルに正確に付加する必要があります。 –

+0

ああ、私はすぐに読んでいます。このサンプルを変更して、セルでどのように実行できるかを示しました。 – Branflake2267

関連する問題