将vtype添加到网格EXT-JS中的列

时间:2013-07-03 12:18:01

标签: javascript regex extjs grid numeric

我有一个网格,其中有一列,用户只能输入正整数。其他每一个价值都是不可接受的。

对于文本字段,我可以使用VType处理类似的场景,但我无法将VType添加到网格列。甚至可以添加一个吗?

如果是,如果有人能告诉我该怎么做,那就太好了。

PFB网格代码:

xtype:'gridpanel',
id:'my-grid',
overflowY:'auto',
sortableColumns:false,
enableColumnHide:false,
enableColumnResize:true,
plugins:[
    Ext.create('Ext.grid.plugin.CellEditing', {
        clicksToEdit:1,
        pluginId:'cellEditing'
    })
],
store:new Ext.data.Store({
    fields:['data1', 'data2'],
    addRecords:false,
    data:storeData
}),
columns:[
    {
        text:'NumberColumn',
        dataIndex:'data1',
        menuDisabled:true,
        sortable:false,
        flex: 4,
        editor:{
            xtype:'textfield',
            allowBlank:false,
            //tried adding vtype here...but didn't work...
        },
        renderer:function (value, metaData, record) {
            return value
        }
    }

1 个答案:

答案 0 :(得分:1)

vtype可以应用于字段而不是列。列只允许您显示值,而字段允许您输入和操作它。在您的情况下,您正在使用Cellediting,它使用Ext.form.Field实例覆盖列,在您的情况下是一个文本字段,然后允许您输入/操作值。因此,将有效的vtype添加到fieldconfig应该可行。无论如何,数字没有vtype,因此在这种情况下使用它对你来说毫无价值。

但是使用以下字段可以轻松解决您的问题:

{
    xtype: 'numberfield',
    allowDecimals: false,
    minValue: 0,
    allowBlank: false
}