Шаблоны проектирования для веб-службы включили просмотр дерева Telerik для навигации по сайту документа - PullRequest
2 голосов
/ 11 октября 2010

В настоящее время я работаю над системой управления документами в ASP.NET 3.5 с использованием инструментария Telerik AJAX. Он состоит из главной страницы с заголовком в верхней части и RadTreeview внизу слева для навигации по сайту. Древовидная структура использует комбинацию статических и динамических узлов. Динамические узлы заполняются через веб-сервис. При щелчке узла происходит переход к соответствующей странице, перезагрузка главной страницы и отображение содержимого целевой страницы.

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

Согласно Telerik, это спроектированное поведение по соображениям производительности - узел только когда-либо беспокоится о заполнении следующего набора узлов, и поэтому состояние древовидных представлений не запоминается в viewstate.

Итак, вопрос в том ...

Допустим ли шаблон дизайна навигации в виде главной страницы / асинхронного дерева?

Существуют ли другие способы иметь AJAX-дерево на главной странице, которое запоминает его состояние при переходе на другую страницу?

Я рассмотрел модель рендеринга siglepage / updatepanel / частичной страницы, но мнения, которые я видел в сети, показывают, что это плохая идея. Это сбивает с толку пользователей, которые ожидают, что поведение браузера «назад / вперед» будет перемещаться по сайту, но в одностраничном мире они в конечном итоге покинут сайт.

Я также подумал, что, возможно, может использоваться одностраничный контейнер и iframe, но это, похоже, отходит от «стандартного» шаблона проектирования с использованием мастер-страниц.

1 Ответ

1 голос
/ 16 октября 2010

Если древовидная структура будет сворачиваться каждый раз, когда пользователь переходит на другую страницу / узел, она будет чертовски раздражать их.Это не приемлемо с точки зрения конечных пользователей, если они собираются сделать не более двух раундов.

Я бы сказал, что очень хорошо, что вы используете старые добрые страницы, если пользователи собираютсясоздавать закладки и / или отправлять ссылки на различные части приложения, особенно если вам нужен Google, Yahoo!так далее.проиндексировать вашу заявку.В противном случае вы можете использовать комбинацию IFrame / # hash-link для своего приложения;IFrame может генерировать события истории, таким образом, навигация вперед и назад, даже если пользователь находится на одной и той же верхней странице.

В состоянии для древовидной структуры вы можете использовать localstorage для большинства браузеровдля сохранения текущего состояния, включая все данные, для других браузеров вы можете использовать « Flash cookie », что позволяет хранить до 100 КБ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...