CheckBox и RadioButton Control Adapter

Я написал адаптер управления некоторое время назад для CheckBoxList, чтобы изменить разметку, все хорошо.
Затем я написал адаптер для CheckBox, опять все хорошо.
Затем я заметил, что RadioButton на сайте использовали метод рендеринга в моем адаптере управления Checkbox.

С RadioButton, унаследованным от CheckBox'ов, они всегда будут попадаться на мой контрольный adpater CheckBox. Есть ли способ, которым я могу остановить это, поскольку я не хочу переопределять рендеринг для своих переключателей, поскольку это означает изменение большого количества другого кода через нашу CMS.

Или я могу избежать метода Render в моем адаптере управления, если объект является радиокнопкой?
Сначала я думал, что смогу использовать base.Render(), однако, очевидно, что он идет не так (все они наследуются от WebControl/Control), и мне обязательно понадобится "parent.Render()".

Есть идеи? или я вынужден повторить рендеринг переключателя в новом адаптере управления?

Мой файл браузера выглядит следующим образом, если это помогает...

<adapter controlType="System.Web.UI.WebControls.DropDownList" adapterType="Skylight.Core.Utility.ControlAdapters.DropDownListAdapter" />
<adapter controlType="System.Web.UI.WebControls.Image" adapterType="Skylight.Core.Utility.ControlAdapters.ImageAdapter" />
<adapter controlType="System.Web.UI.WebControls.CheckBoxList" adapterType="Skylight.Core.Utility.ControlAdapters.CheckBoxListAdapter" />
<adapter controlType="System.Web.UI.WebControls.CheckBox" adapterType="Skylight.Core.Utility.ControlAdapters.CheckBoxAdapter" />

Большое спасибо.
Дэн

1 ответ

Я сам нашел решение, заняло пару часов, но...

Если вы добавите управляющий адаптер для RadioButton и будете использовать adapType HideDisabledControlAdapter над адаптером флажка, он отобразит радиокнопку как обычно.

<adapter controlType="System.Web.UI.WebControls.RadioButton" adapterType="System.Web.UI.WebControls.Adapters.HideDisabledControlAdapter" />

Другие вопросы по тегам