我知道这一定很容易,但我无法让它工作......我正在尝试通过比较来自不同行的两列并将它们相应地放置为节点或叶子来为 extjs 树创建一个列表。这是我的样本数据
ListA ListB labelName
NY Parent1
NY Leaf1
HI Parent2
AK Parent3
这是我的 c# 结束...所以当我匹配 NY 时,我应该将 Parent1 作为节点,Leaf1 作为它的叶子,而不是 HI 或 AK...但是这样做会将我的所有数据都作为 Parent.. 甚至叶子。
SqlCommand cmd = con.CreateCommand();
comd.CommandText = "SELECT * FROM myTable";
con.Open();
SqlDataReader reader = comd.ExecuteReader();
while (reader.Read())
{
City MyData = new City();
MyData.ListA = reader["ListA"].ToString().Trim();
MyData.ListB = reader["ListB"].ToString().Trim();
MyData.labelName = reader["labelName"].ToString().Trim();
giveData.Add(MyData);
}
int count = 1;
List<TreeNode> myNode = new List<TreeNode>();
foreach (City MyData in giveData)
{
// 1st foreach
if (MyData.ListA != "")
{
TreeNode treeNode = new TreeNode();
treeNode.id = count++;
treeNode.name = MyData.labelName;
treeNode.leaf = false;
List<TreeNode> Level1 = new List<TreeNode>();
foreach (City labelName in giveData)
{
if (labelName.ListA == labelName.ListB)
{// 2nd foreach
TreeNode node1 = new TreeNode();
node1.id = count++;
node1.name = labelName.labelName;
node1.leaf = true;
Level1.Add(node1);
}
}
treeNode.children = Level1;
myNode.Add(treeNode);
}
}
return JsonConvert.SerializeObject(myNode);
我是否应该使用数组来存储每条记录并比较它们...我没有想法...我相信有更好的方法来完成这个...请帮助