代碼如下:
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
提交
取消