Во-первых, решите, куда вы хотите поместить свою логику программирования: для скорости лучше использовать какой-то другой элемент управления древовидной структуры (не использующий макет таблицы) и инфраструктуру javascript для обработки событий щелчка. Я рекомендую использовать простые старые файлы обработчика ashx для связи AJAX, они имеют меньше накладных расходов, чем aspx и методы вызывающей страницы. Вызовы и результаты AJAX должны содержать только данные в формате JSON или XML, но не HTML.
С другой стороны, инструмент RAD, такой как VS и TreeView control, предлагает быстрое создание веб-приложения, но, конечно, с некоторыми штрафами: вам нужно вернуться на сервер для обработки каждого события щелчка / выбора, что вызывает проблемы со всей страницей обработка жизненного цикла и огромный объем передачи данных для вызовов ajax (ViewState вместе с HTML передаются с сервера на клиент для каждого события ajax).
Но если вы хотите придерживаться TreeView, я рекомендую:
- Адаптер управления дружественным CSS: они значительно уменьшают размер сгенерированного html (в моем случае, с 100kb до 20kb html) и заменяют макет таблицы элементами ul / li
- Оберните TreeView внутри ASP.NET AJAX UpdatePanel, но только в виде дерева, и используйте условные обновления панели. Не бойтесь использовать несколько панелей обновления
- сохранить ViewState минимальным