前提需要替換查詢得到的List當中的某個字段的值,替換規則有一個mapping關系
嘗試代碼 有問題 無法獲取任何數據

1 /// <summary> 2 /// 獲取Treegrid的List 3 /// </summary> 4 /// <returns></returns> 5 public JsonResult GetOrgnizationList() 6 { 7 IQueryable<Rights_Sys_Organization> list = db.Rights_Sys_Organization; 8 return Json(new treegrid 9 { 10 rows = list.Select( 11 s => new 12 { 13 _parentId = s.ParentCode, 14 OrganizationName = s.OrganizationName, 15 EnglishName = s.EnglishName, 16 OrganizationType = s.OrganizationType, 17 States = SysDictionaryCollection.GetFieldTextByDicTypeAndValue("DicType",s.States), 18 OrganizationCode = s.OrganizationCode, 19 Order = s.Order 20 }).OrderBy(c => c.Order) 21 }, JsonRequestBehavior.AllowGet); 22 }
正常的代碼

1 /// <summary> 2 /// 獲取Treegrid的List 3 /// </summary> 4 /// <returns></returns> 5 public JsonResult GetOrgnizationList() 6 { 7 IQueryable<Rights_Sys_Organization> list = db.Rights_Sys_Organization; 8 return Json(new treegrid 9 { 10 rows = list.Select( 11 s => new 12 { 13 _parentId = s.ParentCode, 14 OrganizationName = s.OrganizationName, 15 EnglishName = s.EnglishName, 16 OrganizationType = s.OrganizationType, 17 States = s.States, 18 OrganizationCode = s.OrganizationCode, 19 Order = s.Order 20 }).OrderBy(c => c.Order) 21 }, JsonRequestBehavior.AllowGet); 22 }
暫時未找到解決辦法 如果有人知道怎么解決請留言 謝謝!
2013-08-05
解決辦法:由於dynamic類型不能修改列表中的值(貌似是這樣說的),所以解決辦法是先將list給拿出來tolist(),然后foeach改變值,改完之后再去new row;代碼如下:

public JsonResult GetOrgnizationList() { IQueryable<Rights_Sys_Organization> list = db.Rights_Sys_Organization; List<Rights_Sys_Organization> rlist = list.ToList(); foreach (var item in rlist) { item.States = SysDictionaryCollection.GetFieldTextByDicTypeAndValue("OrgStates", item.States); } foreach (var item in rlist) { item.OrganizationType = SysDictionaryCollection.GetFieldTextByDicTypeAndValue("OrgType", item.OrganizationType); } dynamic rows = rlist.Select( s => new { _parentId = s.ParentCode, OrganizationName = s.OrganizationName, EnglishName = s.EnglishName, OrganizationType = s.OrganizationType, States = s.States, OrganizationCode = s.OrganizationCode, Order = s.Order }).OrderBy(c => c.Order); return Json(new treegrid { rows = rows }, JsonRequestBehavior.AllowGet); }