读书人

请教怎么通过json转化数据生成Jquery

发布时间: 2013-01-23 10:44:50 作者: rapoo

请问如何通过json转化数据生成Jquery easyui的树?
刚开始接触ASP.NET的MVC3,想实现一个从数据库中取数据生成动态树的功能。
表结构是 DeptID DeptName DeptPid 正好符合jquery easyui 1.44树的格式。
我想着是类库中写一个查询,然后再控制器中实例化,再在view中调用,也不知道思路对不对,刚学.NET,见笑了
想问下如何通过json转化数据生成Jquery easyui的树?后台用LINQ写,能送上各个部分的完整的代码就好了,谢谢
[解决办法]

public string ObjectToJson<T>(string jsonName, IList<T> t)

{

StringBuilder Json = new StringBuilder();

Json.Append("{\"" + jsonName + "\":[");

if (t.Count > 0)

{

for (int i = 0; i < t.Count; i++)

{

T obj = Activator.CreateInstance<T>();

Type type = obj.GetType();

PropertyInfo[] pis = type.GetProperties();

Json.Append("{");

for (int j = 0; j < pis.Length; j++)

{

Json.Append("\"" + pis[j].Name.ToString() + "\":\"" + pis[j].GetValue(t[i], null) + "\"");

if (j < pis.Length - 1)

{

Json.Append(",");

}

else

{

Json.Append("}");

}



if (i < t.Count - 1)

{

Json.Append(",");

}

}

}

}

Json.Append("]}");

return Json.ToString();

}


[解决办法]
在Controller里

/// <summary>
/// 服务树
/// </summary>
/// <returns></returns>
public ActionResult ServiceTree()
{
List<Service> Services = bll.GetModelList("CompanyID=" + CONST.TopCompanyID);
ViewData["Services"] = Services;
return View();
}


界面:

<div class="dtree">
<script type="text/javascript">
d = new dTree('d');

d.add("0", "-1", '全部服务');
<%
foreach (var item in (IEnumerable<mry.Model.Service>)ViewData["Services"])
{
if(item.Pid==null)item.Pid=0;
%>
d.add('<%:item.ID %>', '<%:item.Pid %>', '<%:item.Name %>', "javascript:dTreeOnClick('<%:item.ID %>','<%:item.IsDir%>')");
<% }%>
document.write(d);
d.openAll();
d.config.useCookies = false;
</script>
</div>

读书人网 >asp.net

热点推荐