private void BindTreeView() { UnitInfo bUnitInfo = new UnitInfo(); DataSet ds = bUnitInfo.GetUnitInfo(); if (ds != null && ds.Tables[0].Rows.Count > 0) { bool HasAddedLast = true; ; string strDs = "<?xml version='1.0' encoding='GB2312'?>"; for (int i = 1; i < ds.Tables[0].Rows.Count; i++) { strDs += "<a Name='" + ds.Tables[0].Rows[i-1][1].ToString() + "' TID='" + ds.Tables[0].Rows[i-1][0].ToString() + "'>"; for (int j = i; j < ds.Tables[0].Rows.Count; j++) { i = j; if (ds.Tables[0].Rows[j-1]["Path"].ToString().Length == ds.Tables[0].Rows[j]["Path"].ToString().Length) { strDs += "</a><a Name='" + ds.Tables[0].Rows[j][1].ToString() + "' TID='" + ds.Tables[0].Rows[j][0].ToString() + "'>"; } else if (ds.Tables[0].Rows[j -1]["Path"].ToString().Length < ds.Tables[0].Rows[j]["Path"].ToString().Length) { strDs += "<a Name='" + ds.Tables[0].Rows[j][1].ToString() + "' TID='" + ds.Tables[0].Rows[j][0].ToString() + "'>"; } else { if (i==ds.Tables[0].Rows.Count-1) { HasAddedLast = false; } break; } } int nCount = 0; nCount = System.Math.Abs(ds.Tables[0].Rows[i - 1]["Path"].ToString().Length - ds.Tables[0].Rows[i]["Path"].ToString().Length) / 5 + 1; for (int j = 0; j < nCount; j++) { strDs += "</a>"; } if ((i == ds.Tables[0].Rows.Count - 1) && HasAddedLast==false) { strDs += strDs += "<a Name='" + ds.Tables[0].Rows[i][1].ToString() + "' TID='" + ds.Tables[0].Rows[i][0].ToString() + "'>"; for (int k = 0; k < (ds.Tables[0].Rows[i]["Path"].ToString().Length/5-1); k++) { strDs += "</a>"; } } } strDs += "</a>"; XmlDataSource xds = new XmlDataSource(); xds.ID = "XDS"; xds.Data = strDs; TreeView1.DataSource = xds; TreeView1.DataBind(); } } |
|
来自: 空城66 > 《TreeView绑定XML数据源》