我有以下代码适用于除Firefox以外的所有浏览器:
{
xtype: 'gridcolumn',
dataIndex: 'action',
flex: 1,
text: 'Action',
editor: new Ext.form.field.ComboBox({
typeAhead: true,
triggerAction: 'all',
selectOnTab: true,
store: [
['Update','Update'],
['Suspend','Suspend'],
['Cancel','Cancel']
],
lazyRender: true,
listClass: 'x-combo-list-small',
listeners: {
change:{
scope: me,
fn: me.processAction
},
focus: function(combo) {
combo.expand();
},
collapse: function(combo) {
//combo.setVisible(false);
}
}
})
}
问题是,当您单击组合框时,列表中的第一项是<div id="ext-gen1584" class="x-grid-cell-inner " style="text-align: left; ;"> </div>
。
还有其他人遇到过这个吗?它是Ext或Firefox中的错误吗?
目前正在使用Firefox 18.0.2进行测试。
答案 0 :(得分:1)
我有这个错误,就像其他人说的那样,它发生在模型中没有dataIndex的字段时。但是,这是一个小小的时刻,你必须在模型中初始化该字段,即使是空值,然后它将呈现正确。
答案 1 :(得分:0)
是的,&lt; 5.0版本在firefox中有bug - 当dataIndex名称无效时,编辑器输入错误的值。
header: 'Relationship',
dataIndex: 'relationshipWRONG', // rename this on 'relationship'
flex: 2,
getEditor: function() {
return Ext.create('Ext.grid.CellEditor', {
field: Ext.create('Ext.form.field.ComboBox', {
store: relativeStore,
displayField: 'name',
valueField: 'name',
editable: false
})
});
}
在chrome和firefox中查看这个,在firefox中你看到dom元素而不是null值。在5 verion一切都很好。 重命名此数据索引并且值将是正确的。
但是当dataIndex在datacolumn上正确时我看到了这个错误,我还没有找到如何解决它而只是改变 beforestartedit 事件中的值(这是不好的做法)
答案 2 :(得分:-1)
我在网格中遇到了类似的问题,如果dataIndex没有值,那么单元格将显示你所看到的内容。所以请检查dataIndex:Action的内容;
答案 3 :(得分:-1)
这就是我今天在我的案例中想到的......
在你有
的情况下1 - 包含字段'id','name','displayName'以及displayName字段组合的商店。
响应daixfnwpu:为每个字段设置了AND dataIndex。
2 - 要添加字段'id','name'但在其中没有displayName的记录。
如果你做了store.add(记录),这似乎工作,displayName将被设置为空字符串“”
但是如果你拖放记录,drop动作似乎没有设置displayName并且它保持未定义......这是问题的根源......
我通过过滤添加的记录onDrop ...
来解决这个问题Ext.each(records, function(record) {
var displayName = record.get('displayName');
record.set('displayName', displayName ? displayName : '');
record.commit();
});