递归

public void BindSys_Location()
    {
        StringBuilder sb = new StringBuilder();
        DataTable dt = location.GetListBypId(0);
        AppendChildNode(dt, sb);
    }

    /// <summary>
    /// 拼装子节点HTML
    /// </summary>
    /// <param name="drParent">父节点数据行</param>
    /// <param name="sb">HTML字符串</param>
    public void AppendChildNode(DataTable dtParent, StringBuilder sb)
    {
        int j = 0;
        sb.Append("<ul>");
        for (int i = 0; i < dtParent.Rows.Count; i++)
        {
            sb.AppendFormat("<li class=\"Opened\"><a href=\"Sys_Location_List.aspx?id={1}\">{0}</a>", dtParent.Rows[i]["name"].ToString(), dtParent.Rows[i]["Id"].ToString());
            DataTable dt = location.GetListBypId(int.Parse(dtParent.Rows[i]["Id"] + ""));
            if (dt.Rows.Count > 0)
            {
                //sb.Append("这里拼包括子节点的HTML开始节点");
               
                //foreach (DataRow row in dt.Rows)
                //{
                    //递归调用拼装子节点HTML
                    AppendChildNode(dt, sb); ;
                //}
                //sb.Append("这里拼包括子节点的HTML结束节点"); 
            }
            else
            {
                //sb.Append("这里拼不包括子节点的HTML节点");
            }
            sb.Append("</li>");
        }
        sb.Append("</ul>");
        LiteralCNLTreeMenu.Text = sb.ToString();
    }

posted on 2012-05-09 11:58  李菲菲  阅读(154)  评论(0编辑  收藏  举报