当ASP.NET后台使用JavaScriptSerializer这个组件将对象序列化为json,
Hashtable ht = new Hashtable();//生成一个哈希表 ht.Add("total", listu.Count);//保存数据总数 ht.Add("rows", listu);//数据list对象 JavaScriptSerializer jss = new JavaScriptSerializer();//.net 3.5自带的 JsonStr = jss.Serialize(ht);//序列化为json context.Response.Write(JsonStr);//输出json
生成的日期json格式是这样的//Date(1213718400000+0800)//
这种格式ExtJs不识别,导致Grid上无法正常显示。使用ExtJS4的时候,在列模式里像下面这样处理即可。
1 { 2 text:'审核时间', 3 dataIndex:'VALID_DATE', 4 200, 5 renderer: function(value) { 6 if(value){ 7 var dt=eval("new " + value.substr(1, value.length - 2)).toString(); 8 return Ext.util.Format.date(dt, "Y年m月d日H时i分s秒");//"Y年m月d日H时i分s秒" 9 10 } 11 } 12 }
当ASP.NET后台使用Newtonsoft.Json(JSON.NET)这个组件将对象序列化为json,
Hashtable ht = new Hashtable(); ht.Add("total", listu.Count); ht.Add("rows", listu); JsonStr = JsonConvert.SerializeObject(ht);//使用json.net序列化 context.Response.Write(JsonStr);
生成的日期格式是标准的日期像这样子:
"2013-01-15T15
:00:00"
{ text:'审核时间', dataIndex:'VALID_DATE', 200, xtype:'datecolumn', format:'Y年m月d日H时i分s秒' }
最终前台显示结果一样,