5

如何在 ExtJS 3.4 ComboBox 中获取所选 displayField 的值?getValue() 返回 valueField,但我需要其他。

4

4 回答 4

21

combo.getValue() -> valueField
combo.getRawValue() -> displayField

于 2013-05-01T14:26:34.660 回答
6

如果是这种情况,

displayField : 'countryName',
valueField  : 'countryId',

然后以下函数给出所需的 displayFiled (即使商店中有超过 1 个字段,您也可以获得它们)

function getFieldValues(combo, nameIn, nameOut){
     try{
          var r = combo.getStore().find(nameIn,combo.getValue());
          return combo.getStore().getAt(r).get(nameOut);
     }
     catch(err){
          return'error';
     }
}

获取显示字段或存储中的任何其他文件的方法:

var item = getFieldValues(Ext.getCmp('combo'), 'countryId', 'countryName');
于 2013-01-16T12:15:48.640 回答
0

也许你只是用户 store.filter(),对吧?如果是这样,请尝试清除过滤器并再次加载,如下所示:

onProvinceSelected: function (com,record,index)
{
    var provinceCode = com.getValue();
    var postGrid = this.lookupReference('postgrid');
    if (provinceCode != 0) {
        postGrid.store.filter('ProvinceCode', provinceCode);
    } else {
        postGrid.store.filters.clear();
        postGrid.getStore().load();
    }
}
于 2014-09-12T06:06:22.070 回答
0

我正在使用 ComboBox 的 lastSelectionText 属性;对我来说很好,但它是一个未记录的功能,因此可能随时中断......

Ext.override(Ext.form.ComboBox,
{
    getDisplayValue: function () {
        return this.lastSelectionText;
    }
});
于 2015-04-30T10:31:04.423 回答