这里使用的是 Ext.ux.tree.ColumnTree, 这是一个TreePanel的扩展类, 从Extjs下载的官方包里就包含了这个。
1.
问题描述: tree 的头部显示正常, 数据部分在Firefox 显示正常,在IE中无法显示。(如以下code)
原因解析: class不能作为column 的名字,在IE中会有问题, 建议换成其他的,比如classname这样的。
var tree = new Ext.ux.tree.ColumnTree({ id: 'TreeGridId', width: 1000, height: "100%", rootVisible:false, autoScroll:true, title: ' ', renderTo: Ext.getBody(), columns:[{ header:'Name', width:180, dataIndex:'name' },{ header:'Class', width:100, dataIndex:'class' },{ header:'Owner', width:100, dataIndex:'owner' }], loader: new Ext.tree.TreeLoader({ dataUrl:'jsdata.dat', uiProviders:{ 'col': Ext.ux.tree.ColumnNodeUI } }), root: new Ext.tree.AsyncTreeNode({ text:'root' }) });
[{name:'teste',class:'ClassName',owner:'testOwner',uiProvider:'col'},{name:'teste2',class:'ClassName2',owner:'testOwner2',uiProvider:'col'}]
2.
另外, json data的格式如果不标准, 比如缺少逗号什么的, 有时候也会导致在Firefox正常,IE不正常的状况。
总结: tree的数据显示出现Firefox正常,IE不正常时, 一般不会报错误, 通过错误控制台或是debug工具基本上很难直接找到原因, 不过可以猜想的是,原因应该是出在json数据的格式上面, 可以逐步从一笔数据,一个栏位的显示来找原因