0
一个TreeNode我有一个表,伊利诺伊州作为其叶和samething值为“2” ......通过这样做我得到3“头一个”节点,而不是一个具有下所有的三个节点...创建列表
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.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 != "1")
{
TreeNode treeNode = new TreeNode();
treeNode.id = count++;
treeNode.name = "Header One";
treeNode.leaf = false;
List<TreeNode> Level1 = new List<TreeNode>();
foreach (City labelName in giveData)
{
if (labelName.ListA == "1")
{// 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);
}
else if (MyData.ListA != "2")
{
TreeNode treeNode = new TreeNode();
treeNode.id = count++;
treeNode.name = "Header Two";
treeNode.leaf = false;
List<TreeNode> Level1 = new List<TreeNode>();
foreach (City labelName in giveData)
{
if (labelName.ListA == "2")
{// 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);
什么 将是处理此问题的最佳方法
谢谢塞维...我仍然无法获得分组权利......还有headerText似乎不喜欢关键部分...你会通过任何改变有这样的工作示例... – EagleFox
@EagleFox说“它没有不工作“没有任何意义。如果您收到错误消息,请说明它是什么。您还没有提供足够的代码来编写我可以编译的代码,但这至少与您想要的几乎完全相同,您只需根据未提供的信息进行小修改即可。 – Servy
谢谢Servy ...我不是故意说你的答案不起作用...我的意思是你提到的groupBy方法仍然给出相同的3个节点......没有错误......虽然我能够通过使用字典来实现这一目标......并且对于文本表示,我只是使用了case语句......感谢您的帮助,尽管...您在答案中提到了字典,我想为什么不把它用于我的整个列表: ) – EagleFox