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