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

使用Ibatis+Struts2+ExtJs 4.2开发系统,在前台用grid显示日期格式的数据时,在chrome底下显示正常,但在IE8里无法显示,日期项为空白。查询资料才得知,IE只能接受2013/04/01 22:15:11

解决方案如下:

1、定义相转换日期的方法

  //转换为可显示日期

    function Todate(v) {

        if(v == null)

        {

          return null;

        }

var str = v.toString().substring(0,10);//因为我只要日期,,所以我只取T之前的数据2013-04-01

return new Date(Date.parse(str.replace(/-/g,"/")));//最后返回一个日期型的数据

  };

2、Store里的设置

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

    {name: "orders_date", type: ‘date’,convert: Todate}

3、ColumnMode中的设置

{ align:’center’, header: "订单日期", dataIndex: ‘orders_date’, width: 80, sortable: true, renderer : Ext.util.Format.dateRenderer(‘Y-m-d’) }

网络中有其它的解决方案,但是我试过都不行,最后这个是改编别人的方法才得已解决的。原文如下:

其它类似问题如下:

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

从数据库中取出来的时间类型的数据,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 }

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

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

  谢谢!

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

带着我的相机和电脑,远离繁华,走向空旷。

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

相关文章:

你感兴趣的文章:

标签云: