Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ExtJS Combobox中获取所选displayField的值_Extjs_Extjs3 - Fatal编程技术网

如何在ExtJS Combobox中获取所选displayField的值

如何在ExtJS Combobox中获取所选displayField的值,extjs,extjs3,Extjs,Extjs3,如何在ExtJS 3.4 ComboBox中获取所选displayField的值? getValue()返回valueField,但我需要其他值。如果是这种情况 displayField : 'countryName', valueField : 'countryId', 然后,下面的函数给出了所需的displayField(存储中甚至有1个以上的字段,您也可以获得它们) 获取displayfield或存储中的任何其他字段的方法: var item = getFieldValues(Ext.

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

如果是这种情况

displayField : 'countryName',
valueField  : 'countryId',
然后,下面的函数给出了所需的displayField(存储中甚至有1个以上的字段,您也可以获得它们)

获取displayfield或存储中的任何其他字段的方法:

var item = getFieldValues(Ext.getCmp('combo'), 'countryId', 'countryName');
combo.getValue()->值字段

combo.getRawValue()->显示字段

也许你只是用户存储.filter(),对吗?如果出现这种情况,请尝试清除过滤器并再次加载,如下所示:


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

Ext.override(Ext.form.ComboBox,
{
    getDisplayValue: function () {
        return this.lastSelectionText;
    }
});

好的,不管您的案例中有什么
valueField
,您可以澄清您需要什么吗?ComboBox有页面上显示的displayField和提交给脚本的valueField。我需要获取所选项目的displayField的值。为此,没有简单的方法来存档。您可以订阅select事件,但只有当用户单击时才会触发,而不是使用
setValue()
设置值。因此,您需要扩展combo类来添加这样的行为。不知道这是否是你的一个选择,但没有其他办法,还有其他办法。调用getRawValue()返回valueField值:(
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();
    }
}
Ext.override(Ext.form.ComboBox,
{
    getDisplayValue: function () {
        return this.lastSelectionText;
    }
});