निष्पादित नहीं कर सकता है मेरे पास एक स्तर के माता-पिता और बच्चे नोड्स के साथ वृक्षदृश्य नियंत्रण है, प्रत्येक नोड में चयन के बाद नोड्स का चयन करने के लिए एक चेकबॉक्स है यदि मैं हटाएं बटन क्लिक करता हूं, तो मैं बच्चे या माता-पिता को जो भी चुना जाता है उसे हटा देना चाहता हूं, Im कोड के बाद और यह एक त्रुटि देता हैचयनित पैरेंट नोड और बाल नोड्स हटाएं - संग्रह संशोधित किया गया था; गणना ऑपरेशन
कोड
protected void btnRemoveOrganisation_Click(object sender, EventArgs e)
{
foreach (TreeNode Item in tvwSelectedOrganisations.CheckedNodes)
{
if (Item.Parent == null)
{
foreach (TreeNode ChildNode in Item.ChildNodes)
{
Item.ChildNodes.Remove(ChildNode);
}
tvwSelectedOrganisations.Nodes.Remove(Item);
}
else
{
Item.Parent.ChildNodes.Remove(Item);
}
}
}
त्रुटि
संग्रह संशोधित किया गया था; गणना ऑपरेशन निष्पादित नहीं हो सकता है।
संशोधित कोड
protected void btnRemoveOrganisation_Click(object sender, EventArgs e)
{
TreeNodeCollection SelectedNodes = tvwSelectedOrganisations.CheckedNodes;
foreach (TreeNode Item in SelectedNodes)
{
if (Item.Parent == null)
{
tvwSelectedOrganisations.Nodes.Remove(Item);
}
else
{
tvwSelectedOrganisations.FindNode(Item.Parent.ValuePath).ChildNodes.Remove(Item);
}
if (SelectedNodes.Count == 0)
{
break;
}
}
}
समाधान
int SelectedCount = SelectedNodes.Count;
for (int i = SelectedCount - 1; i >= 0; i--)
{
if (tvwSelectedOrganisations.CheckedNodes[i].Parent == null)
{
int j = tvwSelectedOrganisations.CheckedNodes[i].ChildNodes.Count;
tvwSelectedOrganisations.Nodes.Remove(tvwSelectedOrganisations.CheckedNodes[i]);
i += j;
}
else
{
tvwSelectedOrganisations.FindNode(tvwSelectedOrganisations.CheckedNodes[i].Parent.ValuePath).ShowCheckBox = false;
tvwSelectedOrganisations.FindNode(tvwSelectedOrganisations.CheckedNodes[i].Parent.ValuePath).ChildNodes.Remove(tvwSelectedOrganisations.CheckedNodes[i]);
}
}
समाधान मिला, समस्या सामान्य जेनेरिक सूची के कारण थी, मैंने सही कोड – sudheshna