views:

308

answers:

3

I've recently learned to write my own WebControls, but I'm still hazy on the difference between Render and RenderControl. I started out using Render, but at some point I started using RenderControl, which I now use exclusively. If I'm forming a bad habit I'd like to nip it in the bud now before I get set in my ways.

+1  A: 

RenderControl is used for the page to render child controls. Render allows an individual control to render itself.

Sergey
+4  A: 

Here's a good read: Render vs RenderControl

Excerpt from links:

The Render method enables the controller to render itself by writing HTML output to the response stream. This passes a reference to the HTMLTextWriter object, which can write directly to the response stream. This method should be used when you derive directly from control.

The RenderControl method is used by the page to render each individual control. It allows the consumer of your class to render it, and you can use it to render the child controls if you're using a composite control. Also, one thing to note is that this will not be invoked if the visibility property on the control is set to false.

o.k.w
A: 

RenderControl is used if there is an existing control that provides what you want so you can take advantage of how that is rendered.

Render is used if you need to take full control over how the html is rendered.

You can of course combine the two for the most optimal use of your programming time...

awe