One of the things I’ve learnt today is that Rendering Parameters is an extremely cool feature of .
It really empowers your editors by giving them ability to tweak parameters of your renderings in a very easy and intuitive way.

You can simply have any Sitecore field rendered within the Control Properties dialog just like in Content Editor.

And you can then access it as an ordinary parameter within rendering, for example within XSL Rendering:

<xsl:param name="type"/>  
<xsl:param name="username"/>

The idea is simple and beautiful. You create a template where you add those fields, then you assign that template to a rendering via the “Parameters Template” field:

While this is all great, I discovered today is two things today.

First, when assigning a Rendering Parameter Template to a Rendering, make sure that template is inherited from the following template, otherwise it would not work, and you will get an error.

/sitecore/templates/System/Layout/Rendering Parameters/Standard Rendering Parameters

Second thing I’ve learnt about this feature is that the parameters that are being passed to your Rendering **are case sensitive.

In other words, if the field names on the template are “Type” and “U**sername”, you will need to specify your parameters accordingly:

<xsl:param name="Type"/>  
<xsl:param name="Username"/>

Things may be different for sublayouts and web controls, but you tell me :-)

Read more about rendering parameters here