Я использую TreeView с ShowCheckBoxes = «Все» в веб-приложении ASP.NET 3.5 и по какой-либо причине проверенные узлы не возвращаются по порядку. Допустим, у меня есть узлы A, B, C, и я выбираю B и C и нажимаю кнопку сохранения, и когда я проверяю свойство CheckedNodes TreeView, проверенные узлы находятся в порядке (B, C). Но в следующий раз, когда я вернусь на страницу и выберу узел А, возвращается заказ B, C, A. Что может быть причиной такого поведения?Проверенные узлы Treeview не возвращаются в порядке
ответ
CheckedNodes - это TreeNodeCollection, который только реализует ICollection. Когда происходит событие checkChanged, оно, вероятно, просто добавляет узлы дерева в коллекцию CheckedNodes.
Ничего не видно on MSDN подразумевает, что вы должны предположить, что узлы будут упорядочены. Все это говорит,:
Каждый раз, когда страница отправляется на сервер , коллекция CheckedNodes является автоматически заполняется выбранных узлов.
Из вашего эксперимента, кажется безопасным предположить, что на втором обратном пути он просто добавляет в коллекцию новые проверенные узлы, вместо того, чтобы очищать коллекцию и повторно добавлять все.
Простой порядок сортировки коллекции CheckedNodes
будет достаточным для решения этой проблемы. Эта подпрограмма (http://urenjoy.blogspot.com/2009/06/sort-checkednodes-treenodecollection-in.html), с которой я столкнулся с поиском, работает напрямую, вызывая до начала цикла через коллекцию. Он по существу проверяет текст в простом сравнении и возвращает новую коллекцию в порядке.
Из приведенной выше ссылке:
private TreeNodeCollection SortTreeNode(TreeNodeCollection nodeList)
{
for (int i = 0; i < nodeList.Count-1; i++)
{
for (int j = i + 1; j < nodeList.Count; j++)
{
if (nodeList[i].Text.CompareTo(nodeList[j].Text)>0)
{
TreeNode temp = nodeList[i];
nodeList.RemoveAt(i);
nodeList.AddAt(i,nodeList[j-1]);
nodeList.RemoveAt(j);
nodeList.AddAt(j, temp);
}
}
}
return nodeList;
}
Пример телефонный код:
var tncInOrder = SortTreeNode(this.MyTreeView.CheckedNodes);
foreach (TreeNode node in tncInOrder)
{
//Iterate through the nodes in order
}
- 1. Получить все проверенные узлы treeview
- 2. Как удалить проверенные узлы из Kendo TreeView?
- 3. Как получить все проверенные узлы в начальной загрузки TreeView
- 4. Найти все проверенные узлы родительского узла в treeview
- 5. Как найти все проверенные узлы в Treeview с помощью C#
- 6. Получить проверенные узлы в jsTree
- 7. PowerShell .NET Соберите все проверенные узлы
- 8. Как эффективно удалить проверенные элементы из TreeView?
- 9. Treeview - View показывает только проверенные узлы, редактирование показывает все доступные узлы
- 10. Исчезающие узлы в TreeView
- 11. Получить проверенные и неопределенные узлы
- 12. Узлы перетаскивания в TreeView
- 13. Как получить проверенные узлы в jquery jstree
- 14. Как получить все проверенные узлы в jstree?
- 15. Multiline TreeView Узлы
- 16. Развернуть узлы treeview
- 17. Узлы TreeView не расширяются в IE
- 18. Пользовательские узлы TreeView
- 19. Отключить TreeView узлы
- 20. Развернуть все узлы в TreeView
- 21. Treeview добавляет повторяющиеся узлы
- 22. дочерние узлы TreeView узла
- 23. Итерационные узлы TreeView
- 24. У узлов TreeView есть промежуточные проверенные состояния?
- 25. Узлы возвращаются пустым с libXML2
- 26. WPF TreeView Узлы и вспомогательные узлы
- 27. Как получить проверенные узлы уровня JStree.
- 28. TreeView в C#: проверенные субноды не проверяются и не могут использовать параметры ref
- 29. ASP.NET TreeView узлы не сворачивая и разворачивая
- 30. yui treeview checkbox не расширяет узлы