Сначала решите, где вы хотите поместить свою логику программирования: для скорости лучше использовать другой элемент управления представлением дерева (который не использует табличный макет) и фреймворк javascript для обработки событий щелчка. Я рекомендую использовать простые старые файлы обработчиков ashx для связи AJAX, у них меньше накладных расходов, чем методы aspx и вызывающих страниц. AJAX-вызовы и результаты должны содержать только данные в формате JSON или XML, а не HTML.
С другой стороны, инструмент RAD, такой как VS и элемент управления TreeView, предлагает быстрое создание веб-приложения, но, конечно же, с некоторыми штрафами: вам нужно вернуться к серверу для обработки каждого события click/select, которое рисует проблемы с целым обработки жизненного цикла страницы и огромного объема передачи данных для вызовов ajax (ViewState вместе с HTML передается с сервера на клиент для каждого события ajax).
Но если вы хотите придерживаться TreeView, я рекомендую:
- CSS Дружественного адаптер управления: они значительно уменьшить размер генерируемого HTML (в моем случае, от 100kb до 20kb в HTML) и заменить макет таблицы с ул/li elements
- Wrap TreeView внутри ASP.NET AJAX UpdatePanel, но просто древовидная структура и использование условных обновлений панели. Не бойтесь использовать несколько обновляемых панелей
- держать ViewState минимальным
На самом деле в соответствии с этим http://www.asp.net/ajax/documentation/live/overview/UpdatePanelOverview.aspx UpdatePanel не совместим с TreeView – sarsnake
меня Treeview в UpdatePanel, но должен был сделать некоторые трюки. Пожалуйста, дайте мне знать, если вы хотите, чтобы я опубликовал здесь, как я это сделал! –
Нет, это нормально, если MS говорит, что они не поддерживают его внутри UpdatePanel, я не буду использовать его там. – sarsnake