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中显示不正常。