На моей странице есть древовидная структура ASP.NET. В моем коде у меня есть следующий метод:
public string GetSelectedTreeValues(TreeView tv)
{
string taxVal = string.Empty;
StringBuilder textBuilder = new StringBuilder();
string lists = string.Empty;
string cleanedlists = string.Empty;
try
{
TreeNodeCollection checkedNodes = tv.CheckedNodes;
foreach (TreeNode tn in checkedNodes)
{
lists = textBuilder.Append(tn.ValuePath + ",").ToString();
}
// removing any trailing commas
cleanedlists = lists.Substring(0, lists.Trim().Length - 1);
}
catch (Exception ex)
{
new ApplicationException("Error: Getting Tree Nodes", ex);
}
return cleanedlists;
}
Проблема в том, что когда я делаю обратную передачу, если я изменяю выбранные значения, они всегда добавляют к списку значений. Я думал, что список значений должен очистить , а затем вернуться к новым значениям.
Я прошел по коду и обнаружил, что свойство CheckedNodes всегда добавляет проверяемые узлы к списку, не удаляя непроверенные узлы.