By Alvin Alexander. Last updated: June 4, 2016
The following source code shows a few examples of how to use numeric fields with Sencha ExtJS. First, here are some field definitions from a Ext.grid.Panel class:
{ text: 'Qty', width: 100, dataIndex: 'quantity', xtype: 'numbercolumn', format: '0,000', align: 'right' }, { text: 'Price', width: 100, dataIndex: 'price', xtype: 'numbercolumn', format: '0.00', align: 'right' },
It will probably help to see the code for the entire class, so here it is:
Ext.define('Finance.view.TransactionList', { extend: 'Ext.grid.Panel', alias: 'widget.transactionList', frame: true, store: Ext.create('Finance.store.Transactions'), columns: [ { text: 'ID', width: 50, dataIndex: 'id' }, { text: 'Symbol', width: 100, dataIndex: 'symbol' }, { text: 'Type', width: 50, dataIndex: 'ttype' }, { text: 'Qty', width: 100, dataIndex: 'quantity', xtype: 'numbercolumn', format: '0,000', align: 'right' }, { text: 'Price', width: 100, dataIndex: 'price', xtype: 'numbercolumn', format: '0.00', align: 'right' }, { text: 'Date', width: 150, dataIndex: 'datetime', xtype: 'datecolumn', format: 'Y-m-d' }, { text: 'Notes', width: 250, dataIndex: 'notes' } ], dockedItems: [ { xtype: 'toolbar', flex: 1, dock: 'top', items: [ { // the controller automagically picks up the button click event // by referencing the '#add' class (or possibly the 'add' itemId) xtype: 'button', text: 'Add', itemId: 'add', iconCls: 'add' }, { xtype: 'button', text: 'Delete', itemId: 'delete', iconCls: 'delete' } ] } ] });
The Model
The Sencha ExtJS model class that goes along with that code is shown here:
Ext.define('Finance.model.Transaction', { extend: 'Ext.data.Model', idProperty: 'id', // `ttype` is B (buy) or S (sell) fields: [ { name: 'id', type: 'int' }, { name: 'symbol', type: 'string' }, { name: 'ttype', type: 'string' }, { name: 'quantity', type: 'int' }, { name: 'price', type: 'float' }, // can also use 'number' { name: 'datetime', type: "date", format: 'Y-m-d' }, { name: 'notes', type: 'string' } ] });
That code shows both integer and float fields. Sencha lets you use int
or integer
to declare integer fields, and float
or number
to declare floating-point (float, decimal) fields.
That’s all I have for today, I just wanted to share this code, mostly as a reference for myself.