2016-08-17 2 views
0

Поэтому мне нужно создать пользовательскую номерную ячейку с ограничением 20 цифр до запятой и 16 десятичных цифр после запятой. Пытался переопределить onKeyDown(), но он не проверяет типизированное значение динамически, только значение перед размытием. Любая помощь?Sencha GXT NumberInputCell length

ответ

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

Смежные вопросы