我有一个预填充值的组合框。 点击批准所有按钮我想将其值设置为某个值。
这是我的代码
var myStore = new Ext.data.ArrayStore({
sortInfo: {field: 'Name', direction: "ASC"},
data: arrHoursData,
fields: [{name: 'Id', type: 'string'},
{name: 'Name', type: 'string'},
{name: 'Hours', type: 'string'},
{name: 'AssignmentId', type: 'string'},
{name: 'Status', type: 'string'}
]
});
var statusStore = new Ext.data.Store({
data: arrStatus,
fields: ['Id', 'Name']
});
var hoursGrid = Ext.create('Ext.grid.Panel', {
store: myStore,
width: 340,
height: 270,
collapsible: false,
selType: 'cellmodel',
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit:1
})
],
columns: [
{header: 'Id', dataIndex: 'Id',hidden: true},
{header: 'Date',dataIndex: 'Name', width:140},
{header: 'Hours',dataIndex: 'Hours', width:100, editor: {xtype: 'numberfield', minValue: 0, allowBlank: false}},
{header: 'Status',dataIndex: 'Status', width:100, editor: { xtype: 'combobox',store: statusStore, queryMode: 'local', displayField: 'Name', valueField: 'Id',id:'status'}, renderer: function (value) {
var label = '';
jQuery.each(arrStatus, function(k,v)
{
if(v['Id'] == value)
label = v['Name'];
});
return label;
}
}
]
});
var win = new Ext.Window({
closable: true,
title: "Edit Hours",
layout: 'form',
modal: true,
width: 360,
height: 300,
plain: true,
border: false,
items: [
{
flex: 1,
xtype: 'container',
style:'margin-top:15px',
layout: {
type: 'hbox',
align: 'stretch'
},
items:[hoursGrid]
}
],
buttons: [
{
text: 'Approve All',
handler: function ()
{
Ext.getCmp('status').setValue(approvedStatusId);
}
}
],
});
win.show(g);
我也尝试使用getCmp设置其值,但它给了我错误 Ext.getCmp(' status')未定义。
答案 0 :(得分:0)
您必须在记录上设置值,而不是组合框。组合框始终使用记录中设置的值。
grid.getStore().each(function(record) {
record.set("Status",approvedStatusId);
};