我刚才写了一个控件适配器,用于CheckBoxList来改变标记,一切都很好
然后我为CheckBox写了一个适配器,再次都很好。
然后我注意到网站上的RadioButton在我的Checkbox控件适配器中使用了render方法。
由于RadioButton继承自CheckBox,它们总是被我的CheckBox控件adpater捕获。有什么方法可以阻止这个,因为我不想覆盖我的单选按钮的渲染,因为这意味着通过我的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" />
非常感谢。
丹
答案 0 :(得分:0)
我自己找到了一个解决方案,花了几个小时,但是......
如果为 RadioButton 添加控件适配器并在复选框适配器上方使用 HideDisabledControlAdapter 的adapterType,它将正常渲染单选按钮。
<adapter controlType="System.Web.UI.WebControls.RadioButton" adapterType="System.Web.UI.WebControls.Adapters.HideDisabledControlAdapter" />