Javascript 如何在网格编辑模式下以编程方式设置字段组件
我想用comboxbox和字段编辑网格。 在编辑所选行时,在combobox的select事件上,我想将一些值从数据库设置为网格中的字段。 当行处于编辑模式时,我不知道如何在字段控件中设置任何值。 有人建议“使用EditorGridPanel,您应该将编辑分配给控件,而不是直接分配给数据库”,但我不知道如何分配 这是我的密码Javascript 如何在网格编辑模式下以编程方式设置字段组件,javascript,extjs4,Javascript,Extjs4,我想用comboxbox和字段编辑网格。 在编辑所选行时,在combobox的select事件上,我想将一些值从数据库设置为网格中的字段。 当行处于编辑模式时,我不知道如何在字段控件中设置任何值。 有人建议“使用EditorGridPanel,您应该将编辑分配给控件,而不是直接分配给数据库”,但我不知道如何分配 这是我的密码 var triprate_idEditor = { xtype : 'combobox' , typeAhead : true , trigger
var triprate_idEditor = {
xtype : 'combobox'
, typeAhead : true
, triggerAction : 'all'
, displayField : 'name'
, valueField : 'id'
, store : 'TriprateAllStore'
, queryMode : 'local'
, emptyText : 'Select a name...'
, listeners:
{
select: function(combo, rec) {
console.log(' here');
// var triprateall = Ext.data.StoreManager.lookup('TriprateAllStore');
// triprateall.filter(id:combo.value);
var g = Ext.getCmp('Tripgrid-Id');
//return default value 0
console.log(g.getSelectionModel().selected.items[0].data.triprate);
//get triprate from database, excluded here
//set triprate to 400 but not in editor
g.getSelectionModel().selected.items[0].data.triprate = 400;
//return value 400
console.log(g.getSelectionModel().selected.items[0].data.triprate);
}
}
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
clicksToEdit: 2,
id: 'TripEditingGrid',
errorSummary: false
});
Ext.define('Fleet.view.grids.TripGrid',
{
extend : 'Ext.grid.Panel',
alias : 'widget.Tripgrid', //xtype
id : 'Tripgrid-Id', //Unique Id
store : 'TripStore',
selType : 'rowmodel',
plugins: [rowEditing],
columns :
[
{
header : 'id'
, dataIndex : 'id'
, width : 80
, field : { xtype : 'numberfield' }
},
{
header : 'triprate id'
, dataIndex : 'triprate_id'
, width : 100
, filter : true
, editor : triprate_idEditor
, renderer : function(value, metaData, record, rowIndex, colIndex, store, view){
return record.data.triprate_name7; //desc column for display in gird
}
},
{
header : 'triprate'
, dataIndex : 'triprate'
, width : 80
, field : { xtype : 'numberfield' }
},
{
header : 'status'
, dataIndex : 'status'
, width : 70
, renderer : formatBoolean
, editor : checkboxEditor
}
]
});
首先,在定义网格列时,应该使用
编辑器
属性,并将代码定义组合框编辑器放在那里 谢谢你的快速重播。我已经使用在代码头中定义的编辑器属性editor:triprate_idEditor定义了网格列。var triprate_idEditor={….}