Extjs学习笔记之 combobox 在 IE 中无法正常显示的问题解决

下面的例子中,combobox中的数据由服务端数据填充,刚一开始很多网上的例子都是少了一句,如下:

store数据

var companies = new Ext.data.JsonStore({
    url: '/Company/GetCompanies/',
    root: 'companies',
    fields: [
{ name: 'CompanyID' }, { name: 'CompanyName'}]
}); 

 

ComboBox的实现:

new Ext.form.ComboBox({
    fieldLabel: 'Company',
    typeAhead: false,
    triggerAction: 'all',
    valueField: 'CompanyID',
    hiddenName: 'CompanyID',
    displayField: 'CompanyName',
    mode: 'remote',
    lazyRender: true,
    store: companies,
    allowBlank: true,
    editable: false,
    listeners: {
        'focus': function () {
            if (companies.data.length > 0) {
                debugger; // 这个用来调试.                  
            }
        }
    }

}) 
返回Json串
{"companies":[{"CompanyID":1,"CompanyName":"Test"},{"CompanyID":2,"CompanyName":"Test1" 
},{"CompanyID":3,"CompanyName":"Test2"}]}

 

结果是在火狐中显示正常,但是在IE中无法正常显示

解决方法很简单,把store改为如下:

var companies = new Ext.data.Store({
    proxy: new Ext.data.HttpProxy({
        url: '/Company/GetCompanies/',
        method: 'GET'//这里是重点****************
    }),
    reader: new Ext.data.JsonReader({
        root: 'companies'
    },
  [{ name: 'CompanyID', mapping: 'CompanyID' },
  { name: 'CompanyName', mapping: 'CompanyName' }
  ])
}); 
 
就是简单的method方法,导致在IE中显示不正常。

 

 


posted @ 2011-06-26 15:43  jadebug  阅读(812)  评论(0编辑  收藏  举报