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. 【转】 TechED2010与我(三) —— 初识云计算

    作者用到的比喻很好. 网址:TechED2010与我(三) -- 初识云计算 初识云计算最近"云计算"被炒的很热,但是由于工作重点主要是做WinForm的控件开发,对云计算的接触比 ...

  2. 工作记事 unknownHost

    使用xutils框架   下带图片(文件)事解析时在urlconnection  执行connect操作的时候抛出 UnknownHostException 而浏览器中能够正常访问该地址.这是由于该u ...

  3. Tomcat口令猜解工具【Python脚本】

    Tomcat 服务器网页部署,登录需用户名/密码,编写了一个简单的Python脚本来测试一些简单的弱口令. 测试环境:Tomcat版本 7.0 登录界面采用basic认证,Base 64加密一下,模拟 ...

  4. C++ CreateThread 实例

    //ThreadBase.h#pragma once #include<windows.h> class CThreadBase { public: CThreadBase(void); ...

  5. Interpolation in MATLAB

    Mathematics     One-Dimensional Interpolation There are two kinds of one-dimensional interpolation i ...

  6. [转]iOS代码块Block

    代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量.作为参数.作为返回值,特殊地,Block还可以保存一段代码,在需要 ...

  7. 让CPU的占有率曲线听我指挥

    最近我要在公司的一个study group负责AWS的AutoScaling功能的介绍.AWS可以根据instance(虚拟机)的CPU使用量进行scaling. 为了做demo,于是就有这样一个需求 ...

  8. C#-2 wpf 项目编程结构设计

    View:界面布局 EXCEL ViewModel:流程,数据粘合胶水 Model: 1)DB 结构 (数据库结构) 2)绑定的数据(界面交互数据) Service:1)BLL(画流程图)画业务逻辑图 ...

  9. oracle 职业学习指引

    风哥 它是阿里巴巴造出的概念.其本意是,在阿里巴巴的IT架构中,去掉IBM的小型机.Oracle数据库.EMC存储设备,代之以自己在开源软件基础上开发的系统. 思科.IBM.谷歌.高通.英特尔.苹果. ...

  10. centos6.5 升级安装pcre 8.39版本

    1.查看系统pcre安装情况 rpm -qa pcre 2.卸载系统自带的旧版本 rpm -e --nodeps pcre 3.下载新版安装 地址:ftp://ftp.csx.cam.ac.uk/pu ...