これは本当に簡単なはずですが、うまく機能させることができません...異なる行の2つの列を比較し、それに応じてノードまたはリーフとして配置することで、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);
配列を使用して各レコードを保存し、代わりにそれらを比較する必要があります...私はアイデアがありません...これを達成するためのより良い方法があると確信しています...助けてください