easyui里关于datagrid日期不能正常显示

来源:互联网 发布:用棒针编织围巾的编程 编辑:程序博客网 时间:2024/05/16 14:45


近期,在ITOO这一块由于急着上线,于是组长将我调到了权限资源这一块,由于是半道上出家,所以和我一起的小伙伴让我调前台的bug。然后在调试前台的 bug中,遇到了一个问题,因为数据库换了,又使用了easyUI,于是datagird表里头的关于时间这块的数据不能正常显示。

经过商量,我们得出了三种解决方法。

1.改变数据库数据格式

2.改变viewmodel的数据类型

3.从数据库中读取之后,进行数据类型转化。

根据现实情况,我们果断的选择了第三种。不仅仅是因为现在我们没有权限去改变数据库或者是viewmodel的数据类型,而且很大的一个考量因素就是我们目前的开发都是分布式开发,不应该因为一个部分的需求而去改变整个数据框架,因为一张表或者是一个viewmodel同时有好几个人在使用。

确定了方法之后,接下来就是实践的问题了。

1.写了一个js将datagrid表格拼了出来。

 $('#dg').datagrid({        title: '用户资源管理',        columns: [[               { field: 'ck', checkbox: true },               { field: 'ResourceName', title: '资源名称' },                { field: 'Type', title: '类型' },                 { field: 'Desc', title: '描述' },                  { field: 'Priority', title: '优先级' },                  { field: 'IsUse', title: '是否启用' },                  {                      field: 'StartTime', title: '开始时间'}


2.加了一个日期转换函数

 //转换日期格式    function changeDateFormat(cellval) {        if (cellval != null) {            var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));            var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;            var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();            return date.getFullYear() + "-" + month + "-" + currentDate;        }    }

3.在表格需要显示时间的地方,运用datagrid表格里头formatter方法调用日期转换函数。

  {                      field: 'StartTime', title: '开始时间',                      formatter: function (value, row, index) {                          return changeDateFormat(value)                      }                  },                   {                       field: 'EndTime', title: '结束时间',                       formatter: function (value, row, index) {                           return changeDateFormat(value)                       }

4.运行效果


问题就是如此一步步的解决了。现在留下这篇博客记录我昨天白天探索的痕迹。同时也非常感谢身边的小伙伴们的帮助。

0 0