pokibor
11.06.2015, 20:55
Приветствую всех. web-разработку, можно сказать, осваиваю, поэтому прошу не ругаться за глупые вопросы.
Стоит следующая задача.
Вот у меня есть некий логический объект на странице - допустим, дерево. Как я его генерирую - думаю, не важно. Пользователь может сворачивать и разворачивать узлы дерева, а также редактировать логические объекты на узлах этого дерева.
Цель - дать ему возможность изменить, скажем, название узла + ещё некоторый набор характеристик.
Я веду к тому, что в каждый узел весь набор элементов упрвления для изменения характеристик не запихнёшь - значит, нужно открывать "окно" или какой-то контейнер с элементами, а затем обновлять узел дерева.
Как это лучше сделать?
Мысли следующие:
1) Открыть всплывающее окно - сразу отметаю. Всплывающие окна могут быть заблокированы, и требовать их разблокировать для нормальной работы я не хочу.
2) Реализовать некий popup, т.е. по сути всплывающее окно, но в рамках самой страницы, не как отдельный объект window. Тогда дерево можно будет обновить после завершения редактирования при помощи ajax, а то и просто java script. Но это вариант для простых случаев.
Поэтому остается один выход - отправлять пользователя на новую страницу, где он заполнит форму и затем сможет вернуться к исходному дереву. Я правильно рассуждаю?
Но тогда возникает проблема - когда он вернется к дереву, хорошо бы восстановить в этом дереве, какие узлы были открыты, а какие - нет. И вот как это лучше сделать - для мена большой вопрос.
Написать для каждого узла некий атрибут (к примеру, "state"), менять его при свертывание-развертывании узла и затем собрать такие "состояния" при помощи jquery-запроса в строку с идентификаторами объектов - логично. Но вот как лучше сделать так, чтобы эта строка оказалась на сервере? Пихать её в куки? Передавать через параметры запроса (она может быть большая!)? Принципиально отказаться от get и юзать только post-запросы?
В общем, надеюсь, задача ясна, прошу дать рекомендации.
P.S. Если что, пользуюсь ASP.NET MVC.
Стоит следующая задача.
Вот у меня есть некий логический объект на странице - допустим, дерево. Как я его генерирую - думаю, не важно. Пользователь может сворачивать и разворачивать узлы дерева, а также редактировать логические объекты на узлах этого дерева.
Цель - дать ему возможность изменить, скажем, название узла + ещё некоторый набор характеристик.
Я веду к тому, что в каждый узел весь набор элементов упрвления для изменения характеристик не запихнёшь - значит, нужно открывать "окно" или какой-то контейнер с элементами, а затем обновлять узел дерева.
Как это лучше сделать?
Мысли следующие:
1) Открыть всплывающее окно - сразу отметаю. Всплывающие окна могут быть заблокированы, и требовать их разблокировать для нормальной работы я не хочу.
2) Реализовать некий popup, т.е. по сути всплывающее окно, но в рамках самой страницы, не как отдельный объект window. Тогда дерево можно будет обновить после завершения редактирования при помощи ajax, а то и просто java script. Но это вариант для простых случаев.
Поэтому остается один выход - отправлять пользователя на новую страницу, где он заполнит форму и затем сможет вернуться к исходному дереву. Я правильно рассуждаю?
Но тогда возникает проблема - когда он вернется к дереву, хорошо бы восстановить в этом дереве, какие узлы были открыты, а какие - нет. И вот как это лучше сделать - для мена большой вопрос.
Написать для каждого узла некий атрибут (к примеру, "state"), менять его при свертывание-развертывании узла и затем собрать такие "состояния" при помощи jquery-запроса в строку с идентификаторами объектов - логично. Но вот как лучше сделать так, чтобы эта строка оказалась на сервере? Пихать её в куки? Передавать через параметры запроса (она может быть большая!)? Принципиально отказаться от get и юзать только post-запросы?
В общем, надеюсь, задача ясна, прошу дать рекомендации.
P.S. Если что, пользуюсь ASP.NET MVC.