У меня есть веб-приложение для управления проектами, где любой проект может быть дочерним элементом нулевого или другого проекта. Наш директор использует эту функцию для группировки проектов в сервисные предложения, и наши руководители проектов используют это для разбивки проектов на задачи ... но с точки зрения базы данных все они находятся в таблице «Проекты». Таким образом, иерархия может быть сколь угодно глубокой, хотя на практике она еще не прошла более 4 уровней (пока).Как бы вы создали древовидное представление, которое обрушивается вокруг произвольного среднего элемента?
Когда вы смотрите на страницу с деталями одного проекта, я хочу иметь какой-то интерактивный виджет, который суммирует всю семью в максимально возможное пространство, если вы не взаимодействуете с ней, но расширяется изящно, чтобы показать как можно больше по мере необходимости, для навигации. Я думаю, что файловые папки отображаются в Проводнике Windows - довольно хорошая метафора, и я знаю, как реализовать это с помощью библиотеки YUI TreeView.
Проблемный случай, я надеюсь, будет, когда я буду рассматривать один проект с десятками братьев и сестер и десятков детей. Если я построю все дерево, а затем разверну его достаточно, чтобы показать проект, на который я смотрю, он также расширит всех моих братьев и сестер, хотя он может скрыть моих детей.
Может ли кто-нибудь указать мне на пример интерфейса, который выглядит так: «Вы здесь. Дети существуют, щелкните эту скидку, чтобы показать их. У вас есть родитель, нажмите, чтобы показать это». ? Требуется JavaScript, все в порядке, Flash будет менее популярен, поэтому его нужно будет чертовски круто. ;)