Ext时间在列表grid中的格式化方法(兼容从数据库中读取和从控件中添加)

      前面有篇文章介绍了从控件中向grid中添加时间时候的格式化方法,可是同样的方法对于从数据库中取到的数据不太适用,报错信息是格式化方法不正确。

      经过调试得知,就算我们后台传值的时候是Date类型,前台Ext.data.JsonReader中定义的时间类型为date时候,相应属性的值前台接不到,只有将Ext.data.JsonReader中的属性类型改成String才可以接收到值,此时格式化方法就要进行修改。

      这样修改之后,数据库中读取数据是可以了,但是从时间控件中添加数据的时候,由于grid添加行的时候,自己定义的数据类型是Date类型,从控件中添加时间又不行了。

       现在为了兼容两种数据,只能把Ext.data.JsonReader的属性类型设置为String,把grid添加行时候的数据类型也修改为String,再统一修改格式化函数为从字符串格式化为事件类型。

代码如下:

var funExt_Proxy_center = new Ext.data.HttpProxy({
     url : _base + "/system/operator!getOperatorFunExtList.so",
     method : 'post'
    });

var funExt_reader_center = new Ext.data.JsonReader({// 用jsonReader读取这些数据
     root : 'selFuns',// 返回的集合
     fields : [{

        name : 'endTime',
        mapping : 'endTime',
        type : 'String'
       },{
        name : 'beginTime',
        mapping : 'beginTime',
        type : 'String'
       }]
});

var funExt_cm_center = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),

     {
       id : "beginTime",
       header : "开始时间",
       dataIndex : 'beginTime',
       width : 100,
       sortable : true,
       renderer : renderDate('Y-m-d H:i:s')
      },{
       id : "endTime",
       header : "结束时间",
       dataIndex : 'endTime',
       width : 100,
       sortable : true,
       renderer :
renderDate('Y-m-d H:i:s')
      }]);

.........

function renderDate(format) {// 日期格式转换
  return function(v) {
   if (Ext.isEmpty(v)) {
    return "";
   } else if (Ext.isEmpty(v.time)) {
    v = v.replace(/T/g, ' ');// 去掉日期类型数据中的一些特殊字符
    JsonDateValue = Date.parseDate(v, 'Y-m-d H:i:s');
   } else {
    JsonDateValue = new Date(v.time);
   }
   return JsonDateValue.format(format || 'Y-m-d H:i:s');
  }
 }

//从时间控件中往grid中添加数据

function addFunExt(){
   var beginTimeValue=Ext.getCmp("beginTime").getRawValue();
   var endTimeValue=Ext.getCmp("endTime").getRawValue();

   var ColValue = Ext.data.Record.create(// 数据对象
 
   [{name : "beginTime",mapping : "beginTime",type : 'String'},
     {name : "endTime",mapping : "endTime",type : 'String'}]);
   var initValue = {
      beginTime:beginTimeValue,
      endTime:endTimeValue

    };
     var colValue = new ColValue(initValue);
     funExt_grid_center.getStore().add(colValue);// 往grid中增加一行数据

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值