ExtJs4 在IE中显示Grid的date格式问题

使用Ibatis+Struts2+ExtJs 4.2开发系统,在前台用grid显示日期格式的数据时,在chrome底下显示正常,但在IE8里无法显示,日期项为空白。查询资料才得知,IE只能接受2013/04/01 22:15:11 形式的日期格式。而且我后台用struts2-json转换java.util.Date类的结果格式为:2013-04-01T22:15:11。
解决方案如下:
1、定义相转换日期的方法
      //转换为可显示日期
        function Todate(v) {
        if(v == null)
        {
          return null;
        }

        var str = v.substring(0,10);//因为我只要日期,所以我只取T之前的数据2013-04-01
        return new Date(str.replace(/-/g,"/"));//最后返回一个日期型的数据
      };

2、Store里的设置
 在Store里面对日期这个选项做如下设置:

     {name: "orders_date", type: 'string',convert: Todate}

3、ColumnMode中的设置
{ align:'center', header: "订单日期", dataIndex: 'orders_date', width: 80, sortable: true, renderer : Ext.util.Format.dateRenderer('Y-m-d') }
网络中有其它的解决方案,但是我试过都不行,最后这个是改编别人的方法才得已解决的。原文如下:
http://www.cnblogs.com/liuxvpiaopiao/archive/2009/12/23/Grid_dateTime_Json.html
其它类似问题如下:
http://wjt276.iteye.com/blog/804486
http://www.iteye.com/problems/68471

===================

从数据库中取出来的时间类型的数据,Json化以后会出现形如:\/date(125465701)\/ 样子的数据,这样的数据在Grid中无法直接显示成合法的日期形式。这个要在前台处理一下。首先定义个函数:

      //转换为可显示日期
        function Todate(v) {

        if(v == null)

        {

          return null;

        }
            var d = new Date();
            var str = v.toString();
            var str1 = str.replace("/Date(", "");
            var str2 = str1.replace(")/", "");
            var dd = parseInt(str2);
            d.setTime(dd); return d;
      };

  在Store里面只对日期这个选项做如下设置:

     { name: 'TXRQ', type: 'date', dateFormat: 'Y-m-d', convert: Todate }

  在ColumnModel中要做如下设置:

  {  header: '填写日期',
            dataIndex: 'TXRQ',
            renderer: Ext.util.Format.dateRenderer('Y年m月d日'),
            sortable: true,
            width: 95
        }

  这样就可以显示正常显示日期数据了数据。

  这个方法只是我自己摸索出来的,网上还有其他不同的做法,这里算是对自己的总结吧,欢迎大家批评指正。

  谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值