Показать сообщение отдельно
Старый 11.06.2015, 20:55   #1
Кандидат наук
 
Аватар для pokibor
 
Регистрация: 13.06.2005
Адрес: 0x00000000
Сообщений: 7,655
Репутация скрыта [+/-]
Реализация редактирования элементов управления

Приветствую всех. web-разработку, можно сказать, осваиваю, поэтому прошу не ругаться за глупые вопросы.
Стоит следующая задача.
Вот у меня есть некий логический объект на странице - допустим, дерево. Как я его генерирую - думаю, не важно. Пользователь может сворачивать и разворачивать узлы дерева, а также редактировать логические объекты на узлах этого дерева.
Цель - дать ему возможность изменить, скажем, название узла + ещё некоторый набор характеристик.
Я веду к тому, что в каждый узел весь набор элементов упрвления для изменения характеристик не запихнёшь - значит, нужно открывать "окно" или какой-то контейнер с элементами, а затем обновлять узел дерева.

Как это лучше сделать?
Мысли следующие:
1) Открыть всплывающее окно - сразу отметаю. Всплывающие окна могут быть заблокированы, и требовать их разблокировать для нормальной работы я не хочу.
2) Реализовать некий popup, т.е. по сути всплывающее окно, но в рамках самой страницы, не как отдельный объект window. Тогда дерево можно будет обновить после завершения редактирования при помощи ajax, а то и просто java script. Но это вариант для простых случаев.

Поэтому остается один выход - отправлять пользователя на новую страницу, где он заполнит форму и затем сможет вернуться к исходному дереву. Я правильно рассуждаю?
Но тогда возникает проблема - когда он вернется к дереву, хорошо бы восстановить в этом дереве, какие узлы были открыты, а какие - нет. И вот как это лучше сделать - для мена большой вопрос.

Написать для каждого узла некий атрибут (к примеру, "state"), менять его при свертывание-развертывании узла и затем собрать такие "состояния" при помощи jquery-запроса в строку с идентификаторами объектов - логично. Но вот как лучше сделать так, чтобы эта строка оказалась на сервере? Пихать её в куки? Передавать через параметры запроса (она может быть большая!)? Принципиально отказаться от get и юзать только post-запросы?
В общем, надеюсь, задача ясна, прошу дать рекомендации.

P.S. Если что, пользуюсь ASP.NET MVC.
__________________
Товарищ, верь: пройдет она -
Эпоха лживых, злых понятий.
Весь мир очнется ото сна,
И на обломках "демократий"
Напишут наши имена!

Мы были волшебницами (оригинальное фентези)
Тень Войны (фанфик по ГП)
pokibor вне форума  
Отправить сообщение для pokibor с помощью ICQ Ответить с цитированием