我有一个网格,其中的一列用户只能输入一个正整数。其他所有值都是不可接受的。
对于文本字段,我可以使用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
}
}
最佳答案
vtype可以应用于字段,而不能应用于列。列仅显示值,而字段则允许您输入和操作它。在您的情况下,您使用的是Cellediting,它用Ext.form.Field实例覆盖该列,在您的情况下,则是一个文本字段,该文本字段随后允许您输入/操作一个值。因此,将有效的vtype添加到fieldconfig应该可以。无论如何,没有用于数字的vtype,因此在您的情况下在此处使用它是毫无价值的。
但是,使用以下字段可以轻松解决您的问题:
{
xtype: 'numberfield',
allowDecimals: false,
minValue: 0,
allowBlank: false
}