ExtJs中处理时间,出现NaN-NaN-NaN的解决方式
关键字: extjs日期格式问题(二)
一般我们的前台代码Ext.grid.ColumnModel里会这样写,以便显示日期格式:
Js代码
1.....
2.{header:"birthday",dataIndex:"birthday".......renderer:new Ext.util.Format.dateRenderer("Y-m-d"),
3.....
....
{header:"birthday",dataIndex:"birthday".......renderer:new Ext.util.Format.dateRenderer("Y-m-d"),
....
如果你前台这样写的话,那恭喜你,你的显示日期那列将不再正确显示时间,而是显示为"NaN-NaN-NaN",是吧?呵呵,问我怎么知道的?因为最开始我也是这么错的。 为什么会是错的呢?让我们来看看Ext.format.dateRenderer的源代码(开源的东西就是好),它的源代码是这样的:
Js代码
1.dateRenderer : function(format) {
2. return function(v) {
3. return Ext.util.Format.date(v, format);、
4. }
5.}
dateRenderer : function(format) {
return function(v) {
return Ext.util.Format.date(v, format);、
}
} 可以看出,我们传会来的值,被当做日期又被格式化了一次,我们传回来的是日期吗?以前是,经过昨天后台代码的修改,我们传回来的仅仅是个字符串了,至于为什么要这么改,请看昨天写的“Extjs日期格式问题(一) ”,那咋办?有的朋友应该已经想到了,既然是字符串,那就直接显示呗,不用renderer了,于是前台代码Ext.grid.ColumnModel里就变成了:
Js代码
1.....
2.{header:"birthday",dataIndex:"birthday".......),
3.....
....
{header:"birthday",dataIndex:"birthday".......),
....可以负责任的告诉你,这样写,绝对可以正确显示了,这样是不是感觉更简单了呢?
但是,基于我项目里的要求,这个问题并没有解决完,因为在这里不是一个简单的gridpanel,而是一个editgridpanel,所以还得定义一个editor,于是有了下面这样一段代码:
Js代码
1.....
2.{header:"birthday",dataIndex:"birthday".......,
3. editor:new Ext.grid.GridEditor(new Ext.form.DateField({format:"Y-m-d"})),
4.....
....
{header:"birthday",dataIndex:"birthday".......,
editor:new Ext.grid.GridEditor(new Ext.form.DateField({format:"Y-m-d"})),
....加了这个DateField控件后,每次可以正常的选择日期,但是选择完日期后,grid里显示的格式就又不正确了,这次显示的内容成了: "Wed Mar 04 1970......",这样的格式一看就是个日期,这样显示的原因当然是因为我们没有写renderer进行格式化处理的缘故。。。
说到这里,有人应该已经想到解决办法了,另外有些人可能就抓狂了,这renderer加了不能正常显示,不加也不能正常显示,这很矛盾啊。。
问题往往到了最矛盾的时候,也是到了解决的时候,现在我把解决代码贴出来,大家一看就明白了。多的不说,看代码:
Js代码
1.renderer:function(value){
2. if(value instanceof Date){
3. return new Date(value).format("Y-m-d");
4. }else{
5. return value;
6. }
7.}
renderer:function(value){
if(value instanceof Date){
return new Date(value).format("Y-m-d");
}else{
return value;
}
} 简单吧?自己写renderer就是了。。
ExtJs中处理时间,出现NaN-NaN-NaN的解决方式的更多相关文章
- mysql中limit与in不能同时使用的解决方式.
mysql中limit与in不能同时使用的解决方式. 分类: MySQL2011-10-31 13:53 1277人阅读 评论(0) 收藏 举报 mysqlsubquery MySQL5.1中子查询是 ...
- MySQL安装过程中出现“APPLY security settings错误”的解决方式
***********************************************声明*************************************************** ...
- Django中的图片加载不出来解决方式记录
背景:Python3.6 + Django2.2 在模板中的html文件中引用图片时,在浏览器中图片总是显示不出来,上网查了很多解决方式,但是都没有解决问题,最终尝试了多次后得以解决,但不清楚原理: ...
- eclipse中js报错简单快捷的解决方式
eclipse中对正确的js文件报错十分常见,我的项目中只要是以.js结尾的必会报错,作为一名小小的程序员,看到“满江红”甚是烦躁!今天就给大家分享一个方便又快捷的解决方案. 瞄准被报错的js文件点鼠 ...
- IDEA中Ctrl+Shift+F快捷键无效的解决方式
某天突然发现idea非常重要的快捷键ctrl+shift+F无效了,网上搜了很多都说是qq快捷键冲突,但是找了下qq快捷键却没有解决,现在给大家一个解决快捷键冲突的思路: 1.查看QQ快捷键--> ...
- Eclipse中Ctrl+Shift+f快捷键无效的解决方式
某天突然发现idea非常重要的快捷键ctrl+shift+f无效了,网上搜了很多都说是qq快捷键冲突,但是找了下qq快捷键却没有解决,现在给大家一个解决快捷键冲突的思路: 1.查看QQ快捷键--> ...
- ubuntu16.04中使用搜狗输入法Qt5无法输入中文解决方式
1.安装fcitx-frontend-qt5 sudo apt-get install fcitx-frontend-qt5 2.将libfcitxplatforminputcontextplugin ...
- easyui中datagrid空数据集不刷新的解决方式
datagrid空间可以异步请求json数据,并将新数据覆盖原有数据,重绘数据表. 但是当回来空数据集的时候,js会产生这样一条错误: TypeError: rows is null for(var ...
- [译]如何检查python中的值是否为nan?
float('nan')是Nan不是一个数字,我该如何判断一个值为nan,有什么简单的方法么? 使用math.isnan()来进行判断 >>> import math >> ...
随机推荐
- Mac下快捷键列表
主界面 command + tab 切换程序 command + ` 在程序内切换界面 command + w 关闭界面 command + q 关闭程序 command + option + esc ...
- JavaScript高级程序设计61.pdf
JSON对象 早期的JSON解析器就是使用JavaScript的eval()函数,ECMAScript5对解析JSON的行为做出了规定,定义了全局对象JSON. JSON对象有2个方法:stringi ...
- android camera(二):摄像头工作原理、s5PV310 摄像头接口(CAMIF)
一.摄像头工作原理 上一篇我们讲了摄像头模组的组成,工作原理,做为一种了解.下面我们析摄像头从寄存器角度是怎么工作的.如何阅读摄像头规格书(针对驱动调节时用到关键参数,以GT2005为例). 规格书, ...
- Joomla必备模块(转自joomla8)
1.Akeeba Backup Core-joomla!网站备份组件. 不论是国内收费主机还是国外的收费主机甚至是免费主机,都必须考虑到数据安全问题.没有哪个主机商可以保证你的网站数据不会丢失,况且很 ...
- std::move()和std::forward()
std::move(t)负责将t的类型转换为右值引用,这种功能很有用,可以用在swap中,也可以用来解决完美转发. std::move()的源码如下 template<class _Ty> ...
- UIView frame, bounds and center
http://stackoverflow.com/questions/5361369/uiview-frame-bounds-and-center Since the question I asked ...
- Eclipse常用插件推荐
Eclipse Web Tools Platform(WTP) 地址:http://download.eclipse.org/webtools/ WTP十分强大,支持HTML, JavaScript, ...
- 3 weekend110的job提交的逻辑及YARN框架的技术机制 + MR程序的几种提交运行模式
途径1: 途径2: 途径3: 成功! 由此,可以好好比较下,途径1和途径2 和途径3 的区别. 现在,来玩玩weekend110的joba提交的逻辑之源码跟踪 原来如此,weekend110的job提 ...
- Shell函数参数
在Shell中,调用函数时可以向其传递参数.在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数... 带参数的函数示例: #!/bin/bash funWit ...
- linux内核--页高速缓存
页高速缓存,可以理解为对磁盘中的文件内容进行缓存的一种缓存策略,当然它不仅仅用于磁盘文件. 当对同一磁盘数据反复访问时,缓存数据就是非常必须的了.这就是buffer和 cache这两个概念中的buff ...