ComboBox.store.loadData不能加载单项数组

ComboBox.store.loadData can't load single-item array

本文关键字:单项 数组 加载 不能 store loadData ComboBox      更新时间:2023-09-26

我使用ExtJS 3.4。我有一个结构与数据的组合框像这样:

var a = [[1,"text1"],[2,"text2"]]

我像这样加载它:

ComboBox.store.loadData(a);

但是当数组中只有一个元素

var a = [[1,"text1"]]

则根本不加载。我读过了:

an Array: Array将被转换为Ext.data.ArrayStore在内部,自动生成处理所有数据的字段名组件。1维数组:(例如,['Foo','Bar']一维数组将自动展开(每个数组项)将用于组合valueField和displayField)二维数组:(例如,[["f"、"Foo"],[' b ', '酒吧']])多维数组,每一项在索引0处的值将为假定为组合valueField,而索引1处的值为假定为combo displayField.

但这并没有解释如何加载一个只有一个元素的数组。不管怎样,它不应该是一个数组,关键是只加载一个项。我试着加载这个:代码:

[{id:1,text:"text1"}]
[[{id:1,text:"text1"}]]
{id:1,text:"text1"}

即使创建自定义的ArrayStore:

Code:
 var store = new Ext.data.ArrayStore({
                            autoDestroy: true,
                            storeId: 'Store1',
                            idProperty:"id",
                            fields: ["id","text"]);
ComboBox.store = store;
ComobBox.store.loadData([{id:1,text:"text1"}]);

但是所有的加载都不正确。组合框要么为空,要么显示id而不是文本。

我可以看到,如果我惰性初始化组合:代码:

{"xtype":"combo","width":250,"fieldLabel":"my combo","value":31029,"forceSelection":true,"hiddenName":"ComboHiddenName","minChars":1,"triggerAction":"all","store":[[31029,"gdfs"]]}

则只有一个元素的数组将成功加载。在哪个属性的组合框。我应该看看配置他们正确的单项目数组使用loadData方法正确加载?

ComboBox.store.loadData(var a);不能处理任何数据。它会引发异常Unexpected token var。应该使用ComboBox.store.loadData(a);而不使用var

ComboBox.valueField = "id";
ComboBox.displayField = "text";
ComboBox.store = new Ext.data.ArrayStore({autoDestroy: true, fields: ["id", "text"]});