2012-02-21 77 views
0

前一段時間我寫了一個控制適配器,用於更改標記的CheckBoxList,都很好。
然後我寫了一個CheckBox的適配器,再次都很好。
然後我注意到網站上的RadioButton在我的複選框控件適配器中使用了渲染方法。CheckBox和RadioButton控制適配器

隨着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

我已經找到了解決這個我自己,採取了幾個小時,但...

如果添加了控制適配器單選和使用HideDisabledControlAdapter的上方的適配器類型複選框適配器,它將正常渲染單選按鈕。

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

+0

我相信它不會呈現爲正常,如果radion按鈕被禁用... – Chris 2012-02-21 14:20:24