谨用该贴来记录一些使用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
1 楼
zxm94w
2011-10-20
楼主,你好,最近在做一个项目需要实现曲线图,刚巧使用的是ExtJs3.2,从网上找了不少这方面的信息,可是都未能实现,3.2的样例试了一下,貌似也不行,不知道楼主可有这方面的文档或者完整的代码,如果有请发到我的邮箱zxm94w@126.com,十分感谢!
2 楼
atian25
2011-10-21
考虑用4.x吧 那图表才是王道
3 楼
zxm94w
2011-10-26
atian25 写道
考虑用4.x吧 那图表才是王道
呵呵,项目做了一半不能随便换的哈,不过好在大体上搞出来了,这还要感谢你那么多帖子,几乎翻了个遍,哈哈。就剩下一个小问题:如何格式化X轴(时间轴),后台传来的是时间字符串,想格式化一下,不知道怎么整,尝试了几个方法都没能成功。
将X轴定义成TimeAxis,貌似是new出来的,所以坐标就不会显示我后台的数据。
想通过labelRenderer:Ext.util.format.date(date,format)来实现,
但是不知道如何获取X轴上的这个date,主要对labelRenderer还不是很熟悉。
你可有什么法子?谢谢了。
4 楼
atian25
2011-10-27
zxm94w 写道
atian25 写道
考虑用4.x吧 那图表才是王道
呵呵,项目做了一半不能随便换的哈,不过好在大体上搞出来了,这还要感谢你那么多帖子,几乎翻了个遍,哈哈。就剩下一个小问题:如何格式化X轴(时间轴),后台传来的是时间字符串,想格式化一下,不知道怎么整,尝试了几个方法都没能成功。
将X轴定义成TimeAxis,貌似是new出来的,所以坐标就不会显示我后台的数据。
想通过labelRenderer:Ext.util.format.date(date,format)来实现,
但是不知道如何获取X轴上的这个date,主要对labelRenderer还不是很熟悉。
你可有什么法子?谢谢了。
labelRenderer应该不难吧,翻下源码就知道了,我记得之前我弄过的.现在不碰3.x了.
另一个歪路是,在store里面加一个字段,映射到你的date字段,在里面格式化,类似:
{name:'dateStr',mapping:'dateField1',convert:function(v,r){return v.format('Y-M-D')})
5 楼
zxm94w
2011-10-27
atian25 写道
zxm94w 写道
atian25 写道
考虑用4.x吧 那图表才是王道
呵呵,项目做了一半不能随便换的哈,不过好在大体上搞出来了,这还要感谢你那么多帖子,几乎翻了个遍,哈哈。就剩下一个小问题:如何格式化X轴(时间轴),后台传来的是时间字符串,想格式化一下,不知道怎么整,尝试了几个方法都没能成功。
将X轴定义成TimeAxis,貌似是new出来的,所以坐标就不会显示我后台的数据。
想通过labelRenderer:Ext.util.format.date(date,format)来实现,
但是不知道如何获取X轴上的这个date,主要对labelRenderer还不是很熟悉。
你可有什么法子?谢谢了。
labelRenderer应该不难吧,翻下源码就知道了,我记得之前我弄过的.现在不碰3.x了.
另一个歪路是,在store里面加一个字段,映射到你的date字段,在里面格式化,类似:
{name:'dateStr',mapping:'dateField1',convert:function(v,r){return v.format('Y-M-D')})
偏方很给力 特来说声:谢谢!
是要抽空看看源码了,呵呵。。。
谢谢哈!