Telerik RadDock - ViewStateById

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

Я получал много ошибок состояния представления при добавлении / перемещении / удалении (дерево элементов управления изменилось), и, похоже, единственными решениями являются создание классов-оболочек для некоторых из телериков (RadDock, RadDockLayout, RadDockZone и т. Д.) И применение атрибута [ViewStateModeById].

[ViewStateModeById]
public class RadDockById : RadDock

Кто-нибудь использовал RadDock совместно с ViewStateModeById? Это может вызвать какие-либо проблемы в будущем?

1 ответ

Решение

Проблемы, связанные с ViewState, с которыми вы столкнулись, вероятнее всего вызваны следующими двумя причинами:

  1. Динамически созданные RadDock не добавляются в один и тот же элемент управления. Как только они добавляются в RadDockZone и другие времена в RadDockLayout. Это приводит к загрузке неправильного ViewState для некоторых из доков, вызывающих проблему.
  2. Закрытые доки удаляются и удаляются со страницы. Это снова меняет дерево элементов управления страницы, что важно при загрузке и сохранении ViewState.

У вас есть следующие варианты решения проблемы на вашей стороне:

  • Отключение ViewState для RadDockLayout или всей страницы. Таким образом, вы можете добавлять или удалять элементы управления, но если свойства изменяются динамически, могут возникнуть некоторые проблемы.
  • Создание нового класса, который наследуется от элемента управления RadDock, и пометка его для использования ViewStateModeById, как вы уже догадались. В этой ветке форума вы можете найти больше информации об этом подходе.
  • Всегда создавать все доки и добавлять их в RadDockLayout. Для закрытых RadDocks их свойство Visible всегда должно иметь значение false.
Другие вопросы по тегам