ExtJS组合框无法渲染

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ExtJS组合框无法渲染相关的知识,希望对你有一定的参考价值。

我有一个用于网格列的组合框编辑器。它也是可编辑的。组合框的商店有autoLoad配置,设置为false意味着当用户点击组合框时,商店被加载。如果我没有在组合框中键入任何内容并单击它,它工作正常。但是,如果我首先在组合框中键入内容,然后单击外部,然后再次单击组合框以加载下拉列表,它根本不会渲染。它只显示加载,然后不显示下拉列表。

这是一个非常奇怪的问题,因为我对其他列也有类似的组合框,但它们工作正常,但它们不可编辑。

这与可编辑配置有什么关系吗?

    var contextDropDownStoreforFactGrid = Ext.create('Ext.data.Store', {
    fields: [{name:'context',type:'string'}],
     proxy: {
         type: 'ajax',
         url: context + '/FcmServlet',
         extraParams: {
             'action': 'getContextDropDownValues'
         },
         reader: {
             type: 'json'
         }
     },
     autoLoad: false    /* load the store only when combo box is selected */
});

    editor: {
                xtype: 'combo',
                store: contextDropDownStoreforFactGrid,
                qureyMode: 'remote',
                id: 'fact_contextId',
                displayField:'context',
                valueField: 'context',
                vtype: 'alphanum',
                listeners: {
                    beforeQuery: function(query) {
                        if (contextDropDownStoreforFactGrid.getCount() != 0) {
                            contextDropDownStoreforFactGrid.removeAll();
                            contextDropDownStoreforFactGrid.load();
                        }

                    }
                }
            },
                renderer: function(value) {
                var index = contextDropDownStoreforFactGrid.find('context', value);
                if (index != -1) {
                    return contextDropDownStoreforFactGrid.getAt(index).data.context;             
                }
                return value;
            }
答案

您的组合框配置中有拼写错误:

qureyMode:'remote',

应该

queryMode:'remote',

这可能导致组合框不从您的商店加载数据。

以上是关于ExtJS组合框无法渲染的主要内容,如果未能解决你的问题,请参考以下文章

Extjs - 如何填充组合框形成一个单一的商店?

似乎无法在 Extjs 中远程填充组合框

商店上的 extjs 组合框 getCount() 返回 0

ExtJS 组合框错误:无法读取未定义的属性“存储”

加载 Store 之前的 ExtJS 渲染网格

ExtJS - AJAX 调用后无法重新加载组合