您的位置:首页 > 编程语言 > C#

TreeView绑定XML数据源C#代码示例

2009-05-11 18:30 316 查看
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();

}

}

这个算法没有经过大量数据的检验,有待考证!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: