2013-07-05 26 views
2

我正在使用Extjs 4.2,并且在我的页面上有一个组合框字段。当我更新这个页面时,我需要在组合框中显示选定的值。如果我使用静态数据,它会正常工作,但是当我从数据库加载数据时,数据即将到来,但它显示所选组合框的值(不是标签)。无法填充组合框标签IN EXTJS

我已经完成了使用组合框的select方法的工作,但我需要遍历存储以获取选定的值。商店值不是从1开始,而是从100开始,并且组合框的select方法使用列表的索引。

下面是您可以检查的代码,但这不适用于多个组合框。

var specilizationComboBox = Ext.getCmp("doctorMasterVO.specilizationFkId"); 

var specilizationValue = 0; 

specilizationStore.each(function (record) { 
    if (record.get('value') != dataRead.dataVO.doctorMasterVO.specilizationFkId) { 
     specilizationValue = specilizationValue + 1; 
    } 
    else { 
     return false; 
    } 
}); 

specilizationComboBox.select(specilizationComboBox.store.data.items[specilizationValue]); 

请告诉我,有任何其他方式可以做到这一点,因为迭代整个商店不是一个好主意。

回答

0

查阅这些方法:

find

findBy

findRecord

findExact

Basicly你想做的事是这样的:

var myId = dataRead.dataVO.doctorMasterVO.specilizationFkId; 
var record = store.findRecord("id", myId); 
specilizationComboBox.select(record); 

其中“id”是您试图在商店中找到匹配的字段的名称。 请注意,如果记录不存在或者商店不正确,myRecord可能为空加载

要确保专卖店加载,你可以在负载处理程序中执行上面的代码:

specilizationComboBox.getStore().load({ 
    scope: this, 
    callback: function(records, operation, success) { 
     //code goes here 
    } 
}); 

如果你是不知道,如果商店已经加载,你可以检查getCount方法。

+0

非常感谢您为我工作。 – Saurabh