これは昨日の質問"How do I create folders in ASP.NET in code behind"を参照しています。問題は、実行時に動的フォルダを作成したいということです。フォルダ名はTextBoxを介して入力され、出力はTreeViewに表示されます。最初のフォルダ名をtextbox1に入力して[フォルダの追加]ボタンをクリックすると、フォームが送信されます。同じ名前の複数のフォルダを送信すると、出力は名前のインデックス付きインクリメント(FooFolder、FooFolder(2)、FooFolder(3)など)になります。フォルダイベントの追加とフォルダイベントの削除の2つのイベントがあります。特定の子フォルダを選択して[フォルダを削除]ボタンをクリックすると、そのフォルダが削除されます。フォルダを追加するために、私は次のコードを書いています:コードの後ろにフォルダを作成する方法
TreeNode tnode = new TreeNode();
if (TreeView1.Nodes.Count > 0)
{
int found = 0;
for (int i = 0; i < TreeView1.Nodes.Count; i++)
{
if (TreeView1.Nodes[i].Text == TextBox1.Text)
found += 1+i;
}
if (found > 0)
{
tnode.Text = TextBox1.Text + found.ToString();
}
else
{
tnode.Text = TextBox1.Text;
}
}
else
{
tnode.Text = TextBox1.Text;
}
TreeView1.Nodes.Add(tnode);
}
私のコードでは、ChildNodeインデックスはインクリメントされません。次のように常に1です。
Sumit
Sumit(1)
Sumit(1)
Sumit(1)
Amit
Amit(5)
Amit(5)
Amit(5)
ツリービューでは、私はImageSet="XPFileExplorer"
を設定しました。だから、出力は次のようになります。私はすべての子フォルダを削除すると、たとえば、
-Root
-Sumit(Parent1)
NewFolder
NewFolder(2)
NewFolder(3)
NewFolder(4)
NewFolder(5)
-Amit(Parent2)
FooFolder
FooFolder(2)
FooFolder(3)
FooFolder(4)
FooFolder(5)
新規フォルダ(3)および新規フォルダを(4)と同じスミット(親1)の下でこれらの同じフォルダを作成し、インデックスはする必要がありますニューフォルダー(3)、ニューフォルダー(4)。同じ名前のSumitの下にもう1つのNewFolderを作成すると、そのインデックスはNewFolder(6)になります。
誰かがこの出力を得るために私のコードを変更してください。
(6)、ジャック(10)、ジャック(15)は絶対に間違った出力です。 – user59637
あなたの発見した数も修正するように編集しました。 – SirDemon
あなたのコーディングサブフォルダのインデックスは1から始まっています。ここでは2で始める必要があります。例:Jackは親フォルダです。Michaelはサブフォルダで、Jack Michael、Michael(2)、Michael(3)、Michael(4) – user59637