Я использую элементы управления Telerik ASP.Net Ajax (теоретически не должно иметь значения, кто контролирует сторонние устройства). Я хотел бы создать свой собственный серверный элемент управления (не пользовательский), который имеет собственный предопределенный вывод HTML, но также включает Telerik DatePicker. Поскольку Telerik DatePicker - это еще один серверный элемент управления , как правильно разместить серверный элемент управления в моем настраиваемом элементе управления сервером .
Насколько я понимаю, сервер контролирует работу, записывая вывод html. Как я могу записать выходные данные другого элемента управления, который я создаю в методе Render, и при этом сохранить индивидуальный жизненный цикл исходных элементов управления.
Желаемый результат:
- Мой собственный серверный элемент управления, который содержит множество сторонних элементов управления (например, RadDatePicker).
Решение
Спасибо @Sumo за указание в направлении элемента управления Composite. Документация доступна здесь .
Мне удалось решить проблему, создав элемент управления, который наследует CompositeDataBoundControl
. Затем связать данные с моим источником данных, вычислить, сколько нужно пользовательских элементов управления, поместить их в ArrayList и правильно создать их экземпляр (с собственным жизненным циклом в CreateChildControls()
). Затем я смог отобразить каждый элемент управления в ArrayList из DatePicker
в методе Render()
, вызвав индекс ArrayList, который еще не отображался.
Например. ((RadDatePicker)datePickerArray(instantiatedDatePickersCount)).RenderControl(writer)
.
На данный момент это грязное решение, но оно работает для моих целей тестирования.