2013-10-08 240 views
0

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

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

我已经用这个打破了我很多天,但没有解决方案!有人可以帮忙吗?

editor: { 
     xtype: 'combobox', 
     store: contextDropDownStoreforFactGrid, 
     queryMode: 'remote', 
     id: 'fact_contextId', 
     displayField:'context', 
     valueField: 'context', 
     vtype: 'alphanum', 
     listeners: { 
        beforeQuery: function(query) { 
         contextDropDownStoreforFactGrid.removeAll(); 
         contextDropDownStoreforFactGrid.load(); 
        } 
       } 
      } 

该店

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 
}); 

的JSON是:

[{"context":"Uplift"},{"context":"QTCUplift"},{"context":"MSRP"},{"context":"Khanij"}] 

回答

0

我不知道为什么你要加载店前quesry,我的意思是:

listeners: { 
      beforeQuery: function(query) { 
       contextDropDownStoreforFactGrid.removeAll(); 
       contextDropDownStoreforFactGrid.load(); 
      } 
     } 
    } 

如果你删除了上面的这块鳕鱼e会发生什么? 你认为它不会加载商店?我不认为,像往常一样,它应该加载。 我猜问题是您加载之前删除记录,这是不是在所有必要

contextDropDownStoreforFactGrid.removeAll(); 

每API因为随着

beforequery(目标queryEvent)的所有查询处理

之前触发

我不认为之前查询事件需要明确处理。

+0

我已经删除了侦听器,并试过,仍然是同样的问题! –

0

为什么你需要听者?评论听众。应该没问题。

+0

我已经移除了监听器并尝试了,仍然是同样的问题! –