Ext.form.ComboBox用JSON数据源下拉框不显示选项,点击一个选择项在文本框可以显示值,求指导

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ext.form.ComboBox用JSON数据源下拉框不显示选项,点击一个选择项在文本框可以显示值,求指导相关的知识,希望对你有一定的参考价值。

选择一个可以显示后台JSON传来的相应的字段值
想让下拉框显示选项

参考技术A 检查看看 datafield,与valuefield 没有匹配上

还有看看绑定的字段是否为英文字符,如果是中文字符可能会引起问题,

从楼主的截图看,已经从数据库读出了数据只是没有正确的显示出来,从上面两点原因找找分析!

good luck!追问

能在文本框中显示对应的字段就说明已经匹配了,数据库里也没人会将字段设为中文,谢谢你的回答。

在触发单击 Extjs 3.4 时重新加载 ComboBox 存储

【中文标题】在触发单击 Extjs 3.4 时重新加载 ComboBox 存储【英文标题】:Reload a ComboBox store on trigger click Extjs 3.4 【发布时间】:2015-05-09 12:44:56 【问题描述】:

我是js 和ExtJS 3.4 的初学者,我正在尝试在Ext.window 中使用Ext.form.ComboBox 来显示js 对象(层)的列表。

问题是当我第一次创建窗口并单击combobox 触发器时,我得到了正确的图层列表,但是当我删除或添加图层并再次单击触发器时,商店不会更新,我找到了相同的列表。

你能帮我找到解决这个问题的方法吗,例如当我点击触发器时,它会更新并加载新的列表存储?

欢迎提出任何建议。

代码片段

// The "ImageField" is an item witch is called on the return of the methode "createWindow" ...
createWindow: function() 

    ImageField = new Ext.form.ComboBox(Ext.apply(
        name: "Image_ref",
        fieldLabel: "Image Input (Required)",
        emptyText: "Select your Image",
        xtype: 'combo',
        forceSelection: true,
        editable: true,
        allowBlank: true,
        triggerAction: 'all',
        mode: 'local',
        valueField: 'value',
        displayField: 'text',
        labelWidth: 300
        width: 250,
        id: 'myCombo',
        hideLabel: false,
        lazyRender: false,
        lazyInit: false,
        mode: 'local',
        triggerAction: 'all',


        store: new Ext.data.SimpleStore(
            autoLoad: true,
            autoDestroy: true,
            fields: ['text', 'value'],
            data: layer_liste_WCS // is a liste of js objects
        ),
        listeners: 

            beforequery: function(qe) 
                // console.log(qe);
                qe.cancel = true;
                addComboxFieldItemsWCS(); // Run this methode to get "layer_liste_WCS" witch is liste of data
                var actionComboBox = Ext.getCmp('myCombo');
                .
                .
                .
                .
                .
                .
                // I don't know how to do to reload the store after runing the methode "addComboxFieldItemsWCS"
            
        

    , base));

    return new Ext.Window(
        closable: true,
        resizable: false,
        shadow: false,
        closeAction: 'hide',
        region: "center", //"north","south","east","west"
        width: 480,
        height: 190,
        iconCls: 'wind_icon',
        plain: true,
        layout: 'border',
        buttonAlign: 'right',
        layout: 'fit',
        listeners: 
            show: function() 
                this.el.setStyle('left', '');
                this.el.setStyle('top', '');
            
        ,
        items: [
            region: 'center',
            xtype: 'tabpanel',
            activeTab: 0,
            width: 50,
            height: 20,
            items: [ // we will declare 3 tabs
                title: 'Datas Inputs',
                closable: false,
                iconCls: 'input_icon',
                active: true,
                items: [
                    xtype: 'form',
                    autoWidth: true,
                    labelWidth: 185,
                    bodyStyle: "padding:10px;",
                    items: [
                        ImageField,
                    ]
                ]
            ]
        ],
    );
,

【问题讨论】:

您如何在商店中删除\添加图层?你能分享那个代码吗 听到页面:geoxxx.agrocampus-ouest.fr/mapfishapp/… 要找到窗口,请转到“工具”->“WPS Jussie”并使用右侧面板删除/添加图层。这是源代码:github.com/geosas/wpsjussie/blob/master/js/main.js 【参考方案1】:

我迟到了,但我抓住了机会。

addComboxFieldItemsWCS 中有 ajax 调用吗?

如果可以,请将此代码放在您的回调中:

Ext.getCmp('myCombo').getStore().loadData(layer_liste_WCS, false);

供您参考,false 参数是替换现有数据。

希望对您有所帮助。

【讨论】:

嗨,很抱歉迟到了!不 !我没有 Ajax 调用!存储是一个 ['text', 'value'] 的数组。你能发布一个示例代码吗?提前谢谢你!

以上是关于Ext.form.ComboBox用JSON数据源下拉框不显示选项,点击一个选择项在文本框可以显示值,求指导的主要内容,如果未能解决你的问题,请参考以下文章

关于Ext.form.ComboBox的使用

选择项目后在EditorGridPanel的Ext.form.Combobox上保留displayField?

JavaScript [ExtJS]在Ext.form.ComboBox下拉列表中显示空字符串

在触发单击 Extjs 3.4 时重新加载 ComboBox 存储

在阅读器中定义映射

extjs 下拉框多选