WebControl创建中Render和RenderControl有什么区别?
-
22-07-2019 - |
题
我最近学会了编写自己的 WebControl,但我仍然对 Render 和 RenderControl 之间的区别感到模糊。我一开始使用 Render,但在某个时候我开始使用 RenderControl,现在我只使用它。如果我养成了一个坏习惯,我想在我开始采取自己的方式之前将其消灭在萌芽状态。
解决方案
如果有一个现有的控制,提供你想这样你就可以利用这一点是如何呈现什么RenderControl被使用。
渲染使用,如果你需要接管的HTML是如何呈现的完全控制。
当然你也可以将二者结合起来为你的编程时间的最优化利用...
修改强>结果 有关此更好的解释,以及良好的出发点是什么时使用,请参见从 mhenry1384 答案一>
其他提示
渲染为受保护的方法,这意味着只有派生类可以访问它。这就是所谓的事件生命周期内,而不应显式调用你的代码。
RenderControl是,它允许你打电话的时候你想要的Render方法的公共方法。您存储控制在ControlsCollection,但要使其在表自己的细胞,你会在使用它,比如,一个定制控制。例如:
writer.Write(""): foreach(Control ctl in Controls) { writer.Write("") ctl.RenderControl(writer); writer.Write(""); } writer.Write("");
您应该总是覆盖渲染,而不是RenderControl,因为它是所谓的事件生命周期(就像我已经说过)
(来自 http://forums.asp.net/t/909220.aspx/1 ,对不起我的回答只是一个复制和粘贴的,但我并没有看到多少点重写这样一个清晰明了的解释)的
我还是不明白,为什么MS不只是让渲染()的公共方法。为什么是一个单独的RenderControl()有必要吗?造成这种情况的推理是从迄今为止给出的所有答案丢失。谁可以解释它的第一人得到一个闪亮给予好评。
RenderControl用于页面呈现子控件。渲染允许单独控制来呈现自身。