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" />