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. Matlab中fread函数的高级使用方法及其帮助文档中容易引起歧义的地方

    参考资料:http://cn.mathworks.com/help/matlab/ref/fread.html 注意:参考资料针对的Matlab版本号R2015a,我使用的是R2013b. Matla ...

  2. Ftp类

    using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO ...

  3. 通过sougou输入法,解决卡在Setup Wizard(小绿人)界面

    本人使用海信EG900手机(安卓2.3.5,已root),为了使用google的服务,先后手动复制和CWM recovery刷入google服务包(gapps-gb-20110828-signed.z ...

  4. WINDOW(单调队列的应用)

    给你一个长度为 N 的数组,一个长为 K 的滑动的窗体从最左移至最右端, 你只能见到窗口的K个数,每次窗体向右移动一位,如下表: 你的任务是找出窗口在各位置时的 max value,min value ...

  5. Async/Await - Best Practices in Asynchronous Programming

    https://msdn.microsoft.com/en-us/magazine/jj991977.aspx Figure 1 Summary of Asynchronous Programming ...

  6. 影响div背景色显示的问题

    说来惭愧,走上程序猿这条不归路已经一年了,却连自己的博客都没有.看到道上有脸面的大神博客都做得贼漂亮~~于是,按捺不住了~~ 今天终于开通了博客园博客,正式开始我的博客人生啦!!!~~吼吼~~ 废话少 ...

  7. T24基础-基本命令(1)

    如果你不知道什么是T24,那这篇文章对你意义不大.如果你所在银行IT刚好就准备使用或已经使用T24作为银行核心系统,那我的文章对你会很有帮助. 1. LIST  这个语句相当于SQL里的“select ...

  8. Request.UrlReferrer

    1:Request.UrlReferrer可以获取客户端上次请求的url,这样就可以实现类似“上一页”的功能等 2:刷新当前页面,不会改变Request.UrlReferrer的值 3:如果有A,B两 ...

  9. CentOS 6 到 CentOS 7

    redhat提供了一个redhat-upgrade-tool的升级工具: [1]配置软件源   # vim /etc/yum.repos.d/upgrade.repo [upgrade] name=u ...

  10. mybatis generator使用(基于maven)

    1.添加maven依赖 <dependency> <groupId>org.mybatis.generator</groupId> <artifactId&g ...