private List<Menu> mlist = MongoDBHelper.GetAll<Menu>(ConsTable.GM_MENU);
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write(CreateExtTreeJSON());
context.Response.End();
}
private string CreateExtTreeJSON()
{
StringBuilder sb = new StringBuilder();
CreateExtTreeNode(sb);
String s = sb.ToString();
return s.Replace("}{", "},{");
}
private void CreateExtTreeNode(StringBuilder sb)
{
List<Menu> parentIds = mlist.Where(m => m.Pid == 0).ToList();
if (parentIds.Count > 0)
{
sb.Append("[");
foreach (Menu m in parentIds)
{
sb.Append("{");
sb.Append("text:'" + m.Text.ToString() + "',");
sb.Append("id:'node" + m.Id.ToString() + "'");
AddChildrenNode(m.Id, sb);
sb.Append("}");
}
sb.Append("]");
}
}
private void AddChildrenNode(int id, StringBuilder sb)
{
List<Menu> list = mlist.Where(m => m.Pid == id).ToList();
if (list.Count > 0)
{
sb.Append(",leaf:false,children:[");
foreach (Menu m in list)
{
sb.Append("{");
sb.Append("text:'" + m.Text.ToString() + "',");
sb.Append("id:'node" + m.Id.ToString() + "',");
sb.Append("href:'" + m.Url.ToString() + "',");
sb.Append("hrefTarget:'tab_main'");
AddChildrenNode(m.Id, sb);
sb.Append("}");
}
sb.Append("]");
}
else
{
sb.Append(",leaf:true");
}
}