今天用ExtJS显示Microsoft AJAX Serialized date发生了问题
1. 后台代码 MVC Controller中返回ActionResult
public ActionResult GetUserInfo()
{
int startIndex = 0;
int pageIndex = 1;
int pageSize = 4;
int pageCount;
string limit = Request.QueryString["limit"];
if (!int.TryParse(limit, out pageSize))
{
pageSize = 4;
}
string s = Request.QueryString["start"];
if (!int.TryParse(s, out startIndex))
{
startIndex = 0;
}
pageIndex = startIndex / pageSize + 1;
var list = userInfoService.LoadPageEntities<int>(pageIndex, pageSize, out pageCount, c => c.IsDel == 0, c => c.ID, false);
PagedData pd = new PagedData();
pd.total = userInfoService.LoadEntities(c => c.IsDel==0).Count<UserInfo>();
pd.rows = list.ToList<UserInfo>();
return Json(new { total = pd.total, rows = pd.rows }, JsonRequestBehavior.AllowGet);
}
但是json数据中日期格式是这样的
{"ID":18,"UserName":"1","UserPass":"1","RegTime":"\/Date(1451145600000)\/"
2. ExtJS中需要对这种日期格式进行处理
第一步:
在ExtJS的Model 配置dateFormat 参考http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.data.Field-cfg-dateFormat
Ext.define("AM.model.UserInfoModel", {
extend: "Ext.data.Model",
fields: [
{ name: 'Id', type: 'int', sortable: true },
{ name: 'UserName', type: 'string', sortable: true },
{ name: 'UserPass', type: 'string', sortable: true },
{ name: 'Email', type: 'string', sortable: true },
{
name: 'RegTime',
type: 'date',
//format: 'd/m/Y G:i',
dateFormat: 'MS',
sortable: true
},
],
});
其中MS表示Microsoft AJAX Serialized date 参考http://docs.sencha.com/extjs/4.0.7/#!/api/Ext.Date
第二步:
在ExtJS的View 配置format
{
text: '注册时间',
dataIndex: 'RegTime',
xtype: 'datecolumn',
width: 200,
format: 'Y年m月d日',
}
3. 最后的效果