为了账号安全,请及时绑定邮箱和手机立即绑定

一個惱人遞歸的問題?

一個惱人遞歸的問題?

www说 2018-12-07 05:59:59
代碼如下: private string detailHtml = "";    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            DataTable dt = new DataTable();            dt.Columns.Add("id");            dt.Columns.Add("name");            dt.Columns.Add("val");            dt.Columns.Add("upid");            dt.Rows.Add("1", "2009年", "2009年", "0");            dt.Rows.Add("2", "2009Q1", "2009Q1", "1");            dt.Rows.Add("3", "2009Q2", "2009Q2", "1");           // dt.Rows.Add("4", "2009Q3", "2009Q3", "1");            dt.Rows.Add("5", "200901", "200901", "3");            dt.Rows.Add("6", "2010年", "2010年", "0");            //dt.Rows.Add("7", "2010Q1", "2010Q1", "6");            //dt.Rows.Add("8", "201001", "201001", "7");            dt.Rows.Add("9", "2009001", "2009001", "5");            dt.AcceptChanges();            jsTree.InnerHtml = GetTreeHtml(dt);        }    }     private string GetTreeHtml(DataTable dt)    {        string html = "<ul>{0}</ul>";        DataView dv = new DataView(dt);        dv.RowFilter = "upid=0";        string roothtml = "";        foreach (DataRowView dr in dv)        {            roothtml += "<li value='" + dr["val"].ToString() + "' style='margin-left:-28px;'><input type='checkbox' />"                      + dr["name"].ToString() + GetDetailHtml(dt, dr["id"].ToString()) + "</li>";                        detailHtml = "";        }        return string.Format(html, roothtml);    }     private string GetDetailHtml(DataTable dt ,string up_id)    {        DataView dv = new DataView(dt);        dv.RowFilter = "upid=" + up_id;        string html = "";                foreach (DataRowView dr in dv)        {                        detailHtml += "<li value='" + dr["val"].ToString() + "' style='margin-left:-28px;'><input type='checkbox' />"                  + dr["name"].ToString() + "</li>";            GetDetailHtml(dt, dr["id"].ToString());        }        html = "<ul>" + detailHtml + "</ul>";          return html;    } 運行的結果如下:       2009年         2009Q1         2009Q2         200901         2009001      2010年 正確的結果如下:       2009年         2009Q1         2009Q2              200901                 2009001      2010年 不知道怎麼修改,哪位大俠知道的告訴我一下,謝謝! 在此新春佳節來臨之際,祝博客園兄弟姐妹新年快樂,萬事如意!
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 314 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信