代碼如下:
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;??? }
運(yùn)行的結(jié)果如下:
??????2009年?????????2009Q1???????? 2009Q2?????????200901???????? 2009001????? 2010年
正確的結(jié)果如下:
????? 2009年?????????2009Q1???????? 2009Q2??????????????200901???????????????? 2009001????? 2010年
不知道怎麼修改,哪位大俠知道的告訴我一下,謝謝!
在此新春佳節(jié)來(lái)臨之際,祝博客園兄弟姐妹新年快樂(lè),萬(wàn)事如意!
一個(gè)惱人遞歸的問(wèn)題?
www說(shuō)
2018-12-07 05:59:59