我是Extjs的初学者,动态地在Extjs中为combobox添加了一系列选项,但组合框中的选项会出现字符串的第一个字符。 代码:
function makeComboBox(){
var ImageCbx = new Ext.form.ComboBox({
id : cbID,
queryMode: 'local',
displayField : 'names',
valueField: 'names',
typeAhead : false,
mode : 'local',
triggerAction : 'all',
selectOnFocus : false,
//editable : true,
emptyText:'Select...',
width : 400
});
function rewrite()
{
var options = params[attach];//options=["apple", "ball", "cat"];
var store = new Ext.data.SimpleStore({
fields : ['names'],
data : options
});
var cbx = Ext.getCmp(cbID);
cbx.bindStore(store);
}
//output: options in combo box appears with 1st char of strings
a
b
c
//Expected output:
apple
ball
cat
有什么建议吗?我做错了哪里
答案 0 :(得分:0)
普通的ExtJS存储获取对象,而不是字符串。
因为您使用商店字段"名称"作为displayField,您要添加的数据必须采用以下格式:
a = df.resample('M').max()
b = a.xs('c2', axis=1, level=1)
c = a.xs('c3', axis=1, level=1)
d = b - c
print (d)
g1 g2
2017-01-31 0.909464 1.638375
2017-02-28 0.698516 0.338194
您可以使用以下代码获取:
[{ names: "apple" },{names: "ball"}, {names: "cat"}]
您正在使用" SimpleStore"它也称为"ArrayStore",因为它需要数组(而不是字符串)。
在这种情况下,您必须将字符串包装到数组中,因此请使用以下代码:
data: options.map(function(option) {
return {names: option};
})
这也告诉我们为什么你的商店显示第一个字符 - 字符串是一个数组,每个字符都是数组的一个元素。