Telerik RadDock - ViewStateById
Я занимаюсь разработкой веб-сайта, на котором есть домашняя страница с несколькими RadDocks, где пользователи могут выбирать конкретные элементы управления, которые они хотят отображать, и они могут упорядочить их как угодно.
Я получал много ошибок состояния представления при добавлении / перемещении / удалении (дерево элементов управления изменилось), и, похоже, единственными решениями являются создание классов-оболочек для некоторых из телериков (RadDock, RadDockLayout, RadDockZone и т. Д.) И применение атрибута [ViewStateModeById].
[ViewStateModeById]
public class RadDockById : RadDock
Кто-нибудь использовал RadDock совместно с ViewStateModeById? Это может вызвать какие-либо проблемы в будущем?
1 ответ
Проблемы, связанные с ViewState, с которыми вы столкнулись, вероятнее всего вызваны следующими двумя причинами:
- Динамически созданные RadDock не добавляются в один и тот же элемент управления. Как только они добавляются в RadDockZone и другие времена в RadDockLayout. Это приводит к загрузке неправильного ViewState для некоторых из доков, вызывающих проблему.
- Закрытые доки удаляются и удаляются со страницы. Это снова меняет дерево элементов управления страницы, что важно при загрузке и сохранении ViewState.
У вас есть следующие варианты решения проблемы на вашей стороне:
- Отключение ViewState для RadDockLayout или всей страницы. Таким образом, вы можете добавлять или удалять элементы управления, но если свойства изменяются динамически, могут возникнуть некоторые проблемы.
- Создание нового класса, который наследуется от элемента управления RadDock, и пометка его для использования ViewStateModeById, как вы уже догадались. В этой ветке форума вы можете найти больше информации об этом подходе.
- Всегда создавать все доки и добавлять их в RadDockLayout. Для закрытых RadDocks их свойство Visible всегда должно иметь значение false.