【问题标题】:Correct order of overrides for a composite control based on an abstract one基于抽象控件的复合控件的正确覆盖顺序
【发布时间】:2010-04-27 12:28:36
【问题描述】:
我正在编写一组用于显示对话框的 C# 复合 Web 服务器控件。
我希望有一个抽象类来处理基本布局和控件标题等内容,然后有一组派生类在特定点呈现子控件。
我预见了三个不同的方法:renderOpeningHtml 由抽象类处理,renderCustomControls 由派生类处理,renderClosingHtml 再次由抽象类处理,但我无法弄清楚 CompositeControl 的生命周期以及什么时候使用什么方法。
【问题讨论】:
标签:
c#
composite-controls
【解决方案1】:
没关系,想通了。
public override void RenderBeginTag(HtmlTextWriter writer) 和 RenderEndTag 用于抽象控制,RenderContents 用于衍生。
【解决方案2】:
如果您不必自己进行 HTML 渲染,您也可以考虑从 UserControl 派生并添加到您的 Controls 集合中。 “复合”一词似乎指向了那个方向。