2013-07-03 31 views
1

我有一个网格,其中有一列,用户只能输入一个正整数。其他任何价值都是不可接受的。将vtype添加到网格中的列EXT-JS

对于文本字段,我可以使用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

甲V型可以应用到一个字段从未一列。一列只显示一个值,而一个字段允许您输入和操作它。在你的情况下,你正在使用Cellediting,它使用一个Ext.form.Field实例覆盖列,在你的情况下是一个文本字段,然后允许你输入/操作一个值。所以添加一个有效的vtype到fieldconfig应该可以工作。无论如何,没有vtype的数字,所以在这里使用它在你的情况下毫无价值。

但你的问题可以很容易地通过使用以下字段来解决:

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