Как сохранить дочерние элементы управления в CompositeDataBoundControl
В документации для класса CompositeDataBoundControl ( http://msdn.microsoft.com/en-us/library/ms366539(v=vs.100).aspx) говорится следующее:
Это базовый класс, который расширяет класс DataBoundControl, предоставляя следующие функциональные возможности:
- Реализует типичный код, необходимый для составных элементов управления, включая код, который восстанавливает дочернюю иерархию элемента управления из состояния просмотра после выполнения обратной передачи.
- Связывается с источником данных IEnumerable и перечисляет данные для построения дерева элементов управления.
- Служит основой для связанных с данными элементов управления, таких как GridView и DetailsView.
Может кто-нибудь объяснить или показать пример того, как создать CompositeDataBoundControl, который будет сохранять свои элементы управления после PostBack без ручного вызова DataBind? Мой пример слишком сложен для публикации, но, например, если вы связываете ListView, каждый элемент будет отображаться после PostBack. Эта документация указывает на то, что это будет обрабатываться автоматически при наследовании от этого класса, но я не смог заставить это работать.
Я вижу, что CreateChildControls вызывается после каждой обратной передачи, даже если я не вызываю DataBind, но что источником данных является IEnumerable из нулевых объектов (DummyDataSource с тем же количеством, которое было передано в исходном источнике данных до обратной передачи), Кажется, что я должен что-то делать с этой коллекцией, но я не уверен, что, поскольку тип создаваемого элемента управления зависит от типа этого элемента (в этом случае я привязываюсь к списку PropertyInfo и создаю определенный класс в зависимости от атрибута на имущество).
Спасибо за любую помощь, вы можете предоставить!