Javascript ExtJs(4.2.0)可编辑网格,带有xtype:button列
下面是一段可执行代码,在网格编辑器中有一个按钮。我需要按钮出现在编辑器中,但是我不需要更新按钮的任何值。编辑器的更新功能似乎不再起作用。你知道我会错过什么吗Javascript ExtJs(4.2.0)可编辑网格,带有xtype:button列,javascript,extjs,extjs4.2,extjs-grid,Javascript,Extjs,Extjs4.2,Extjs Grid,下面是一段可执行代码,在网格编辑器中有一个按钮。我需要按钮出现在编辑器中,但是我不需要更新按钮的任何值。编辑器的更新功能似乎不再起作用。你知道我会错过什么吗 Ext.create('Ext.data.Store', { storeId:'EmployeeData', fields:['name', 'email', 'phone'], data: [ {"name":"aaa", "email":"aaa@emp.com", "phone":"987654
Ext.create('Ext.data.Store', {
storeId:'EmployeeData',
fields:['name', 'email', 'phone'],
data: [
{"name":"aaa", "email":"aaa@emp.com", "phone":"987654321"},
{"name":"bbb", "email":"bbb@emp.com", "phone":"987654321"},
{"name":"ccc", "email":"ccc@emp.com", "phone":"987654321"},
{"name":"ddd", "email":"ddd@emp.com", "phone":"987654321"}
]});
var grid = Ext.create('Ext.grid.Panel', {
title: 'Employee',
store: Ext.data.StoreManager.lookup('EmployeeData'),
columns: [
{header: 'Name', dataIndex: 'name', editor: 'textfield'},
{header: 'Email', dataIndex: 'email', flex:1,
editor: {
xtype: 'textfield',
allowBlank: false
}
},
{header: 'Phone', dataIndex: 'phone'},
{header: 'button', dataIndex:'',editor:{xtype:'button',editable: false}}
],
selType: 'rowmodel',
plugins: [
Ext.create('Ext.grid.plugin.RowEditing', {
clicksToEdit: 1,
pluginId: 'rowEditing'
})
],
height: 200,
width: 400,
renderTo: Ext.getBody()
});
编辑器在每个
x字段上使用getValue()
函数,按钮控件没有getValue()
函数,因此它引发异常并无法更新记录
如果它能达到你的目的,也许你可以使用它。您可以使用与按钮相同的方式附加处理程序函数。这有点晚了,但我遇到了相同的问题
您可以添加getValue
方法以允许更新操作正常运行
editor: {
xtype: 'button',
getValue: function() {
return true;
}
}
代码应该生成一个4行4列的网格。你期待什么?如果你碰巧读到了描述,上面说因为有一列xtype按钮,编辑器就不工作了。你可以用小提琴来运行它。由于xtype按钮列的原因,编辑器无法工作。可能有其他方法可以完成此按钮的任务。。。你能解释一下按一下按钮能做什么吗?您可以使用自定义插件添加自定义按钮…因此,在按钮单击时,我会在另一个网格中弹出一个带有一组数字的弹出窗口,单击这些数字中的任何一个,打开编辑器中的某些列都会发生更改。