Ext日常错误记录

开发Ext项目中,遇到了很多问题。现将这些问题记录下来,希望能给自己和大家提供一些参考。
1.firebug提示DomHelper的内部错误:很可能是js文件加载顺序不对,DOM还没渲染完毕。
2.js中嵌套的for循环出错的原因:内部for循环的变量和外部for循环的变量冲突,(因为js中的变量没有块级作用域,它们的作用域在整个函数中都有效)
3.js中按钮的处理函数中this变量指的是按钮本身。
4.IE下不能正常通过js代码创建表格的原因:IE下创建table后需要创建tbody元素,然后添加tr才能正常显示。不能在创建table后直接创建tr.
5.Ext中的组建在渲染之前不能调用其方法。

6.grid在IE中每列都很长的解决方法: 设置gird的width属性。
7.在页面中布局排列混乱,如本应横排的堆成一团,这种情况可能是页面中组建width太宽或Ext的布局问题等。
8.如果在组件还没渲染到dom节点上就需要对组件中的某些部分进行dom操作,可以把这部分代码放到组件的onRender方法中。
9.IE报"出现无效的过程调用或参数问题":可能有store或调用的东西初始化或调用错误。
10.fielaLable中如果中不设置lableWidth,则默认是的lableWidth是比较宽的。

11.多个fieldset(上下结构的)不能正常显示的原因:可能是未设置fieldset的autoHeight或height属性。
12.Ext的mask()方法在应用到Ajax时需要把ummask()方法放到Ajax的回调函数内部,以为Ajax是异步的,否则可能看不到mask的效果。
13.store的fields要和后端传回来的jsonobject的一致,否则会出错误??
14.在页面刚开始写的测试阶段,如果没有配置url,但是使用了store的autoLoad则会在firefox下报错。
15.在new一个自定义的Ext组件的时候,即使不传参数,也要在小括号中加入{}。如 new 组件名({});

16.store中的数据需要时二维的,一维的会有错误。
17.用js合并单元格时,colSpan,rowSpan中的"S"必须大写。
18.GridPanel不出现滚动条的原因:可能是它的autoHeight被设置成true,只需把height设置为固定高度就会出现滚动条了。
19.各个组件之间无法直接传值的时候可以尝试在一个组件中添加事件,参数为需要传递的数值,另一个组件监听此事件就能达到传值的目的。
20.对ComboBox设置数值的时候,如setValue(record.data.uid),其中的uid应为ComboBox设置的valueField对应的字段,不能设置为其他值(即使是displayField对应的字段),否则向后端传参的时候会传错误的参数。

21.record.data.searchField和record.data[searchField]的区别:前者的searchField不被当成变量,而是常量,后者的searchField被当成变量

22.window中整体窗口和窗口中小组件都设置height的话,如果height设置不当,会造成页面混乱(如子组件的height之和大于window的height时)

23.TriggerField如果配置hideTrigger:true,使用Ext2.2的时候在IE下可能无法显示。解决方法: 覆写onRender方法,在此方法中使用this.trigger.hide();

24.如果新增窗口和修改窗口使用同一个窗口,在里边同时有新增成功事件和修改成功事件,新增和修改按钮的处理函数中new这个窗口,则在new这个窗口的时候要在new之后对这两个事件都要监听。否则会导致丢失一个监听事件。

你可能感兴趣的:(Ajax,IE,ext,Firebug,firefox)