读书人

ExtJS3.x 漫笔(2010-07-08更新)

发布时间: 2012-10-30 16:13:36 作者: rapoo

ExtJS3.x 随笔(2010-07-08更新)

谨用该贴来记录一些使用extjs过程中的笔记吧. 不时更新.

?

2010-07-02

?

1. extjs chart bug

?

1)显示/隐藏chart(X轴为时间轴)的时候,会出现时间渲染函数失效的情况.

xAxis: new Ext.chart.TimeAxis({  displayName: '时间',  labelRenderer : Ext.util.Format.dateRenderer('H:i')})

?暂时没有仔细去分析源码,估计是显示隐藏的时候,那个函数被覆盖掉了.

?现在的解决方式是不显示/隐藏,而是重新生成.

?

2)跨月的时候,坐标轴错误,坐标点都挤到最后面去了.

环境是:extjs 3.2.0 , 用法是每半小时一个点,成功率折线图(所以共48个点).

测试了下,发现是当跨月的时候会出该问题.

?

暂时的解决方法是,因为我们的x轴显示不需要显示日期,所以在store的Field里面判断了下,如果跨月,就日期前移一天.

{  name:'finishTime',type:'date',dateFormat:'Y-m-d H:i:s',  convert:function(v,r){    var date = Date.parseDate(r.finishTime,'Y-m-d H:i:s');    if(date.getDate()==1){      //如果日期为该月的第一天,则往前移动一天      return date.add(Date.DAY,-1);    }else if(date.getDate()==date.getLastDateOfMonth().getDate()){      //如果日期为该月的最后一天,则往前移动一天      return date.add(Date.DAY,-1);    }     return date;  }}
?

?

2.在Menu中放置一个DateField,点击的时候会隐藏的问题.

?

主要是因为DateField中还有个DateMenu,2个menu冲突了

var dateField = new Ext.form.DateField({    fieldLabel:'日期1',    menu: new Ext.menu.DateMenu({      hideOnClick: false,      allowOtherMenus: true    })  })
?

相关阅读: <ExtJS Menu嵌套combo等控件时,自动隐藏/遮盖等bug的解决方案>

http://atian25.iteye.com/blog/441476

?

?

3.To be continue

?

//tz




labelRenderer应该不难吧,翻下源码就知道了,我记得之前我弄过的.现在不碰3.x了.
另一个歪路是,在store里面加一个字段,映射到你的date字段,在里面格式化,类似:
{name:'dateStr',mapping:'dateField1',convert:function(v,r){return v.format('Y-M-D')})


labelRenderer应该不难吧,翻下源码就知道了,我记得之前我弄过的.现在不碰3.x了.
另一个歪路是,在store里面加一个字段,映射到你的date字段,在里面格式化,类似:
{name:'dateStr',mapping:'dateField1',convert:function(v,r){return v.format('Y-M-D')})



偏方很给力 特来说声:谢谢!
是要抽空看看源码了,呵呵。。。
谢谢哈!

读书人网 >JavaScript

热点推荐