This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center。
7年前关闭。
参考Combobox inside a grid示例。我能够在我的页面中执行此操作。问题是,当我更改组合框之一中的值时,同一行中其余组合框也将更改,它们都具有相同的值。
我只使用一个javascript和基本的html和ext js。我正在使用ext沙箱(ext4)。
有什么帮助吗?
7年前关闭。
参考Combobox inside a grid示例。我能够在我的页面中执行此操作。问题是,当我更改组合框之一中的值时,同一行中其余组合框也将更改,它们都具有相同的值。
我只使用一个javascript和基本的html和ext js。我正在使用ext沙箱(ext4)。
有什么帮助吗?
if(columnData != undefined){
for (var i = 0; i < columnData.length; i++)
{
var storedata = [];
for(var gr = 0;gr < gridData.itemData[0][0].length;gr++){
storedata.push([(gr + 1),gridData.itemData[0][0][gr]]);
}
var comboRenderer = function(combo) {
return function(value) {
alert(value);
alert(combo.valueField);
var idx = combo.store.find(combo.valueField, value);
if ( idx < 0 ) {
idx = 0;
}
var rec = combo.store.getAt(idx);
return rec.get(combo.displayField);
};
};
fields.push({name:columnData[i].name});
columns.push({text:columnData[i].name, width: 140, menuDisabled: true, sortable: false, align: 'center', forcefit: true,
columns: [{
text: 0,
draggable: false,
hideable: false,
flex: 1,
width: 140,
dataIndex: columnData[i].name,
menuDisabled: true,
sortable: false,
align: 'center',
editable: true,
renderer: comboRenderer(new Ext4.form.ComboBox({
id: i.toString(),
typeAhead: true,
triggerAction: 'query',
mode: 'queryMode',
autoSelect : false,
autoShow : true,
emptyText : 'Select item',
store: new Ext4.data.ArrayStore({
fields: ['id' + i, 'description' + i],
data : storedata
}),
displayField:'description' + i,
valueField: 'id' + i,
forceSelection: false
})),
editor: new Ext4.form.ComboBox({
id: i.toString(),
typeAhead: true,
triggerAction: 'query',
mode: 'queryMode',
autoSelect : false,
autoShow : true,
emptyText : 'Select item',
store: new Ext4.data.ArrayStore({
fields: ['id' + i, 'description' + i],
data : storedata
}),
displayField:'description' + i,
valueField: 'id' + i,
forceSelection: false
})
}]
});
}
}
最佳答案
他们都共享同一家商店。您需要为每个组合框创建一个商店副本。
关于javascript - 网格内的Ext JS组合框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15153199/
10-14 17:31