1 前台js: 2 var treeNodes; 3 $.ajax({ 4 async: false, 5 cache: false, 6 type: ‘POST‘, 7 contentType: "application/json", 8 url: "/MsgTypeTemItem/GetAllStr?temId=" + $("#temId").val(), //请求的action路径 9 error: function () {//请求失败处理函数 10 alert(‘请求失败‘); 11 }, 12 success: function (data) { //请求成功后处理函数 13 data = "[" + data + "]"; 14 treeNodes = eval(data);//格式化(object)数据 15 } 16 }); 17 $.fn.zTree.init($("#treeDemo"), setting, treeNodes); 18 后台Controller: 19 public string GetAllStr() 20 { 21 string temId = Request.QueryString["temId"]; 22 List<MsgTypeTemItem> allList = msgTypeItemService.GetAll(); 23 string querySql = "select * from MessageTempletItem where TempletId=‘" + temId + "‘"; 24 DataTable dt = sqlHelper.GetDataTable(querySql); 25 string result = string.Empty; 26 foreach (DataRow dr in dt.Select("FatherId=‘0‘")) 27 { 28 result += AppendJson(dr, dt); 29 } 30 int index = result.LastIndexOf("\r\n"); 31 if (result.Length > 0) 32 result = result.Substring(0, index - 1); 33 return result; 34 } 35 private static string AppendJson(DataRow dr, DataTable dtAll) 36 { 37 string parentNode = string.Empty; 38 string isTrue = "false"; 39 parentNode = "{id:\‘{id}\‘, pId:\‘{pId}\‘, name:\‘{name}\‘, open:" + isTrue + ", drag:true" + "},\r\n"; 40 parentNode = parentNode.Replace("{id}", dr["ItemId"].ToString()).Replace("{pId}", dr["FatherId"].ToString()).Replace("{name}", dr["ItemContent"].ToString()); 41 DataRow[] rows = dtAll.Select("FatherId=‘" + dr["ItemId"].ToString().Trim() + "‘"); 42 if(rows.Length!=0) 43 { 44 foreach (DataRow row in rows) 45 { 46 parentNode += AppendJson(row, dtAll); 47 } 48 } 49 return parentNode; 50 } 51 注意:①.要后台数据进行eval(object化)--eval 52 eval前:[{id:‘y1‘,pId:‘0‘,name:‘y1‘,drag:true},{id:‘y11‘,pId:‘y1‘,name:‘y11‘,drag:true},{id:‘y2‘,pId:‘0‘,name:‘y2‘,drag:true}] 53 eval后:[object Object],[object Object],[object Object]
相关知识点①:eval
var code1=‘"a" + 2‘; //表达式
var code2=‘{a:2}‘; //语句
var code3=[{a:1,b:2},{a:2,b:3}];
alert(eval(code1)); //->‘a2‘
alert(eval(code2)); //->undefined
alert(eval(‘(‘ + code2 + ‘)‘)); //->[object Object]
alert(eval(code3));//->[object Object],[object Object]
原文:http://www.cnblogs.com/wanshi1989/p/4237612.html