解决EXT中Grid等组件读取Json数据的Date数据问题
来源:互联网 发布:linux cp 编辑:程序博客网 时间:2024/05/17 04:16
java里面时间类型转换成json数据就成这样啦: "modifyTime":{"date":30, "day":3, "hours":15, "minutes":14, "month":3, "nanos":0, "seconds":38, "time":1209539678000, "timezoneOffset":-480, "year":108}
在gridpanel里面就会显示成[object,object],同样在表单中也显示[object,object].
从开始使用EXt以来,就被这个问题困扰,一直没解决这个问题,查了网上的解决办法,都没成功,而且,网上的办法也不简单.
今天实在受不了啦,就动手自己做了一下,没想到,很轻松的搞定了这个问题.(原创文章,转载请注明来源http://www.busfly.cn/post/ext-grid-json-date.html)
解决办法如下:
写一个render方法,转化成正确的Date数据就可以了.如下:
function renderDate(format) {
return function(v) {
var JsonDateValue;
if (Ext.isEmpty(v))
return '';
else if (Ext.isEmpty(v.time))
JsonDateValue = new Date(v);
else
JsonDateValue = new Date(v.time);
return JsonDateValue.format(format || 'Y-m-d H:i:s');
};
};
在ColumnModel里面这样写
{
header : "birthday",
renderer : renderDate('Y-m-d'),
dataIndex : 'birthday',
align : 'center'
}
OK,搞定了,这样就可以正常显示Date类型的数据了.
在Form表单等其它地方的数据也是一样,写个方法转化一下就可以了.但是,DateField没有renderer这样的东西设置,那咋办?
那就只好对DateField重写一下喽,代码如下
Ext.override(Ext.form.DateField, {
setValue : function(date) {
if (Ext.isEmpty(date)) {
}
else if (Ext.isEmpty(date.time)) {
date = new Date(date);
}
else {
date = new Date(date.time);
}
Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date)));
}
});
=======================================================================================
目前整理一下,最后定稿如下:
/**
* 将Json中Date长串,转成Js中的时间串
* @param {} value
* @return {}
*/
function readJsonDate(JsonDateValue, format) {
var o;
if (Ext.isEmpty(JsonDateValue))
return '';
else if (Ext.isEmpty(JsonDateValue.time))
o = new Date(JsonDateValue);
else
o = new Date(JsonDateValue.time);
return o.format(format || 'Y-m-d H:i:s');
};
/**
* 主要用在Grid中
* @param {} format
* @return {}
*/
function renderDate(format) {
return function(v) {
return readJsonDate(v, format);
};
};在ColumnModel里面这样写
{
header : "birthday",
renderer : renderDate('Y-m-d'),
dataIndex : 'birthday',
align : 'center'
}//DateField重写
Ext.override(Ext.form.DateField, {
setValue : function(date) {
if (Ext.isEmpty(date)) {
}
else if (Ext.isEmpty(date.time)) {
date = new Date(date);
}
else {
date = new Date(date.time);
}
Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date)));
}
});
- 解决EXT中Grid等组件读取Json数据的Date数据问题
- Ext json传递Date数据问题
- Grid读取json数据
- Grid读取json数据
- (转)解决ExtJs分页grid中load数据为空时不能刷新Ext.PagingToolbar信息的问题
- 解决ExtJs分页grid中load数据为空时不能刷新 Ext.PagingToolbar信息的问题
- 解决有关Ext Grid导出Excel在JSP等环境中不可用的问题
- Ext.grid.Panel加载JSON数据
- Ext.grid.GridPanel数据转json
- 关于Ext.grid.Panel显示远程数据无法加载问题的解决
- json数据的读取等操作
- ExtJs的Grid组件配合struts2返回json数据
- ext项目中遇到的Date和json的问题
- ext grid 显示数据精度丢失问题
- java手动拼接Ext组件json数据的简单方法
- 解决weka API读取Oracle10g数据库中date型数据出错问题
- Ext中ComboBox读取数据、显示数据出现的一些问题
- Date型数据转成json数据时出现的问题
- 嵌入式系统 Boot Loader 技术内幕
- Gcc也不是神,不可全信
- Google Web App开发指南第一章:什么是Web Apps?
- DirectX11的Shader Reflect的几个问题(2012-2-22更新)
- 新手必读:PhoneGap入门六大问题
- 解决EXT中Grid等组件读取Json数据的Date数据问题
- 海豚浏览器CTO刘铁锋:Mobile Web App发展现状及展望
- 使用View Model从表现层分离领域模型
- mantis 添加新状态配置方法
- 编程心得
- iphone、ipad自动化测试,解决方案
- fedora use
- flex+cairngorm+spring+hibernate整合实例
- 郎咸平-楼价问题