Extjs 使用组合框将数据加载到表单中的正确方法是什么?

Extjs 使用组合框将数据加载到表单中的正确方法是什么?,extjs,combobox,sencha-touch,Extjs,Combobox,Sencha Touch,Sencha建议避免手动将数据加载到表单中,而是使用loadRecord。但是如果表单中有组合,则会将valueField插入文本区域,而不是displayField。人们会认为应该首先加载关联的存储,然后调用loadRecord。但是正确的方法是什么呢?您需要在每个表单字段中添加键“name”以使其正常工作。 然后可以添加要加载的记录或添加数据 intialize: function() { var data = { nameOfComboItem: false, //

Sencha建议避免手动将数据加载到表单中,而是使用
loadRecord
。但是如果表单中有组合,则会将
valueField
插入文本区域,而不是
displayField
。人们会认为应该首先加载关联的存储,然后调用
loadRecord
。但是正确的方法是什么呢?

您需要在每个表单字段中添加键“name”以使其正常工作。 然后可以添加要加载的记录或添加数据

intialize: function() {
    var data = {
        nameOfComboItem: false, // validValue
        nameOfSecondComboItem: true
    };
    this.down('formpanel').setData(data);
}

loadRecord
是一个非常简单的函数,它从记录字段中获取值,然后在相应的表单字段(其中记录字段的名称与表单字段的名称匹配)上调用
setValue(recordFieldValue)

因此,如果表单字段组合存储未加载,或者在存储中未找到
recordFieldValue
,则原始值仅显示在组合的文本部分


在调用load record之前,必须确保已加载组合存储。

它是一个表单,当然字段上有名称。或者你是什么意思?我重读了我的问题,显然有点模棱两可。所以我澄清了一点。这正是我所做的,但它似乎有点太原始了。我还没有尝试过,但是如果记录同时包含-valueField和displayField,那么loadRecord将正确显示它?这是关于调用
combo.setValue(recordFieldValue)
。Combo具有存储与值/文本对,因此如果
recordFieldValue
与存储中的任何记录都不匹配,则会在Combo中显示值,而不是文本。我最终编写了自己的变体。