请问如何通过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();
}
/// <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>