1.前台使用Jquery解决

  (1)如果我们前台使用Jquery来解决这个问题的话,那么我们首先想到的是我们如何解析这个过程呢,当然我们就想到了自己写一个JavaScript脚本来解析这个过程,当然这个脚本不是我写的了,而是别人写的,自己拿过来用,脚本代码如下:

 1 //by 韩迎龙
2
3 /**
4
5 * 对Date的扩展,将 Date 转化为指定格式的String
6
7 * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符
8
9 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
10
11 * eg:
12
13 * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
14
15 * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04
16
17 * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04
18
19 * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04
20
21 * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
22
23 使用:(eval(value.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"))).pattern("yyyy-M-d h:m:s.S");
24
25 */
26
27 Date.prototype.pattern = function (fmt) {
28
29 var o = {
30
31 "M+": this.getMonth() + 1, //月份
32
33 "d+": this.getDate(), //日
34
35 "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时
36
37 "H+": this.getHours(), //小时
38
39 "m+": this.getMinutes(), //分
40
41 "s+": this.getSeconds(), //秒
42
43 "q+": Math.floor((this.getMonth() + 3) / 3), //季度
44
45 "S": this.getMilliseconds() //毫秒
46
47 };
48
49 var week = {
50
51 "0": "/u65e5",
52
53 "1": "/u4e00",
54
55 "2": "/u4e8c",
56
57 "3": "/u4e09",
58
59 "4": "/u56db",
60
61 "5": "/u4e94",
62
63 "6": "/u516d"
64
65 };
66
67 if (/(y+)/.test(fmt)) {
68
69 fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
70
71 }
72
73 if (/(E+)/.test(fmt)) {
74
75 fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[this.getDay() + ""]);
76
77 }
78
79 for (var k in o) {
80
81 if (new RegExp("(" + k + ")").test(fmt)) {
82
83 fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
84
85 }
86
87 }
88
89 return fmt;
90
91 }

  (2)当我们写完上面的脚本之后,这时候我们就需要在页面中使用这个脚本的信息,那么我们如何使用这个信息,当然我们首先需要引用这个对象:

    @*日期格式的引用*@

   <script src="@Url.Content("~/Content/datapattern.js")"></script>

  (3)这时候当我们引用完毕后,我们也就差最后一步了,这时候我们就需要设置easyUI显示数据的格式哪里调用上面我们书写的Json解析的脚本,代码如下:

 1 frozenColumns: [[
2
3 { field: 'ck', checkbox: true }, //选择
4
5 { title: '主键', field: 'ID', width: 40, sortable: true }, //主键
6
7 { title: '角色名称', field: 'Realname', width: 100, sortable: true }, //登录名
8
9 { title: '角色类型', field: 'CategoryCode', width: 100, sortable: true }, //用户名
10
11 { title: '排序码', field: 'SortCode', width: 100, sortable: true },
12
13 { title: '创建人', field: 'CreateBy', width: 90, sortable: true },
14
15 {
16
17 title: '创建时间', field: 'CreateOn', width: 140, sortable: true,
18
19 formatter: function (value, row, index) {
20
21 return (eval(value.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"))).pattern("yyyy-M-d h:m:s");
22
23 }
24
25 },
26
27 { title: '最后修改人', field: 'ModifiedBy', width: 90, sortable: true },
28
29 { title: '修改时间', field: 'ModifiedOn', width: 140, sortable: true }
30
31 ]],

  (4)最后我们可以看一下转换后的想过如图所示:

2.后台使用基类来解决

  (1)上面我们说了第一种方法,那么我们现在来说第二种方法,第二种方法的话我们从标题就看出来了,我们是使用后台的基类来实现这个效果的,那么我们知道我们在以前的博客中我们建立了一个BaseController基仓储,我们在这里就需要用到基仓储了。

  (2)在基仓储里面我们写了如下的方法,在这个方法中我们用到了一些处理时间的对象,大家可以自己研究一下:

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

   (3)接下来我们就需要在我们的实现功能的控制器中调用这个方法来返回对象,角色控制器的代码如下:

 1 /// <summary>
2
3 /// 获得角色的信息显示在角色列表中
4
5 /// </summary>
6
7 /// <returns>返回角色信息的Json对象</returns>
8
9 public ActionResult GetAllRoleInfos()
10
11 {
12
13 //实现对用户和多条件的分页的查询,rows表示一共多少条,page表示当前第几页
14
15 int pageIndex = Request["page"] == null ? 1 : int.Parse(Request["page"]);
16
17 int pageSize = Request["rows"] == null ? 10 : int.Parse(Request["rows"]);
18
19 string RealName = Request["RealName"];
20
21 int? Enabled = Request["Enabled"] == null ? -1 : int.Parse(Request["Enabled"]);
22
23 int? CategoryCode = Request["CategoryCode"] == null ? -1 : int.Parse(Request["CategoryCode"]);
24
25 int total = 0;
26
27 //封装一个业务逻辑层的方法来处理多条件查询的信息
28
29 RoleInfoQuery roleinfo = new RoleInfoQuery()
30
31 {
32
33 PageIndex = pageIndex,
34
35 PageSize = pageSize,
36
37 RealName = RealName,
38
39 Enabled = Enabled,
40
41 CategoryCode = CategoryCode,
42
43 Total = 0
44
45 };
46
47 var date = _roleInfo.loadSearchDate(roleinfo);
48
49 //构造Json对象返回
50
51 var result = new { total = roleinfo.Total, rows = date };
52
53 return JsonDate(result);
54
55 }

Json序列化,date类型转换后前端显示错误的解决方案的更多相关文章

  1. Android出现错误后改正后仍显示错误

    今天编Android的时候,layout.xml出现了错误,改正后仍显示错误.试了很多方法. 后来,将原来的复制并删掉,然后再粘贴上去就可以了.

  2. struts2 前端显示错误信息

    当我们显示错误信息的时候,会发现错误信息会以列表的形式显示,这样就不美观了,达不到我们想要的标准.所以我们可以用另外的方式输出错误信息. 例如我现在增加了两个错误信息: this.addFieldEr ...

  3. EF webapi json序列化 表间相互引用 无限循环问题解决方案

    WebApiConfig.cs中加入 如下代码即可解决无限循环问题 var json = config.Formatters.JsonFormatter; // 解决json序列化时的循环引用问题 j ...

  4. RS交叉表自动汇总后百分比列显示错误之解决方案

    可以说在从事Cognos开发的过程中,仅仅对数据展现而言,大多数用户使用最多的工具便是Report Studio了,此工具可以帮助我们快速的构建一些可供用户自主选择的数据报告.当然我个人认为没有什么开 ...

  5. 【玩转Golang】 自定义json序列化对象时,非法字符错误原因

    由于前台web页面传来的日期对象是这样的格式“2010-11-03 15:23:22”,所以我安装网上查来的办法,自定义包装了time.Time对象,实现自己的Marshal和UnMarshal方法 ...

  6. SyntaxHighlighter行号显示错误问题解决方案

    SyntaxHighlighter是根据代码中的换行符分配行号的.但是,如果一行代码或者注释比较长,在页面显示时需要分成多行显示,会出现行号对不上的问题,像这样: 通过设置CSS强制不换行,可以保证行 ...

  7. 记录一次OracleJDK开发的项目发部到Linux中使用OpenJDK启动后失败的错误的解决方案

    一.现象 基于JAVA SpringBoot2.0.4的项目,发部后项目发部后,放到OpenJDK环境中运行时,提示下列错误: 2019-10-22 10:03:55 [main] WARN  o.s ...

  8. Sublime Text 3 程序运行后中文显示乱码的解决方案

    问题描述: 问题分析: 新建python文件,输入下面代码,测试发现发送给python解释器时,默认为cp936的编码方式,而py文件为UTF-8的编码方式,cp936和UTF-8的编码方式对于英文字 ...

  9. Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解

    Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全   Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...

随机推荐

  1. RaphaelJS实践--猫和老鼠矢量图展示

    (目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/tomAndJerryRaphaelVectorGr ...

  2. CentOS7 监控进程网络流量工具安装

    服务器在做测试的时候,需要监控网络流量,用来了解在不同人数的时候服务器的网络使用量. 我们使用服务器环境是centos7,centos下通常使用iftop,或者nethogs来进行网络流量监控.这2个 ...

  3. java压缩和解压字符串,Byte数组,String

    在网上找到的压缩解压的工具类,可以压缩String字符串 /*** * 压缩GZip * * @param data * @return */ public static byte[] gZip(by ...

  4. javascript函数一共可分为五类: ·常规函数 ·数组函数 ·日期函数 ·数学函数 ·字符串函数

    javascript函数一共可分为五类:    ·常规函数    ·数组函数    ·日期函数    ·数学函数    ·字符串函数    1.常规函数    javascript常规函数包括以下9个 ...

  5. MySQL中MyISAM和InnoDB的区别

    MyISAM和InnoDB的区别 MySQL默认采用的是MyISAM. MyISAM不支持事务,而InnoDB支持.InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事 ...

  6. hiho一下十六周 RMQ-ST算法

    RMQ-ST算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在美国旅行了相当长的一段时间之后,终于准备要回国啦!而在回国之前,他们准备去超市采购一些当 ...

  7. c# 映射对比测试

    c#  映射对比测试(测试对象,测试案例,测试结果) 测试组件对象: TinyMapper-EmitMapper-AutoMapper-NLiteMapper-Handwritten 对比测试案例: ...

  8. java标准-密码用数组比用字符串安全

    转载:http://my.oschina.net/jasonultimate/blog/166968 1) Since Strings are immutable in Java if you sto ...

  9. wordmate 词典安装

    wordmate,使用 StarDict 的词典,可称为 Android 上的 StarDict 安装 wordmate 后,会在 SD 卡中生成 wordmate 文件夹,词典便放在此目录 下载词典 ...

  10. Quartz conTrigger 定时器表达式大全

    CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年]  序号 说明   是否必填  允许填写的值 允许的通配符   1  秒  是  0-59    , ...