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鼠标单击的每一行数据都能累加id,取消某一行id也随着取消,很实用。
在大家开发的系统中,如果程序用ExtJS做表现层,那么就需要使ExtJS开发的界面和后台Java代码中生成的数据交互,一般来说,可以选 择XML格式和Json格式的数据进行交互,但是XML格式的数据操作相对繁琐,因此,大部分...
本例采用PHP,json, sqlite,来显示一个EXT3.0的Grid,需要PHP环境,可以用xampp集成包。 部署后访问http://localhost/ExtSample/employee.php
ext-grid+json简单应用,可以直接套用... 可以跑的工程.sql脚本...
ext树 无限级 json 数据格式 动态加载
ext中grid数据查找后重填到gird中.网上搜集的部分资料。
Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分...
Grid实现中文排序的功能,重写Ext.data.Store的applySort函数
找了半天,结果在extjs的老家找到一个前辈写的代码,可以在grid上面加上合计, <br>但是却只能合计grid里面的数据,但是我们平常一般是只显示20行或者30行,这样的合计就没有什么意义,我们的合计数据是单独从...
通过 json 接收后台数据,在前台分页显示数据,这只是我整的一个例子哦,就是 dwr+ext
用于Ext开发Grid中遇到的所锁列的问题,这个很有帮助
Ext 组件:Ext初学者必备 初学宝典 Ext组件概述
扩展Ext中的组件 扩展与插件之间的区别 扩展Ext的新手教程 Ext的类继承 从源码生成Ext 基础用法: DomQuery基础 Ext中的事件 简述模板 模板(Templates)的函数 教你创建Ext UI控件 事件的处理 Ext中的继承 Ext...
Ext grid panel 滚动条位置不变,适用于实时数据的刷新
EXT支持GRID中文排序 主要是重写排序的方法
本实例使用官方Ext3.1包 分五个部分 1.创建简单快捷的Ext Grid控件 代码清晰 2.Grid 读取 Xml 3.Grid 读取 json 4.Grid 读取 Excel 5.直接在 Grid 控件进行增删改查的操作 有任何疑问的同志欢迎提出即可谢谢
Grid数据导出到Excel文件,尝试了三种方法,并比较。
ExtJs中使用dwrproxy,和json来处理从数据库里查询出来的数据 其中dwrproxy还支持分页(分页功能没做),将war包下载下来后,直接放在tomcat里,然后启动tomcat就可以了 数据库方面,该项目里用的是mysql,数据文件在...
Ext、Ext4中各个组件、属性、方法详解,一个不漏;Ext学习入门及参考最好的资料
封装EXT中grid的打印,多表头,自动从grid的store取数,完成打印页面和生成,调用只需要一两句代码