As Shriroop says, guessing you tried accessing the rendering parameters directly?
Sitecore Rendering Parameters - Alex Shyba blog
If you still want to access the parameters and directly using <xsl:param name="paramName"/>
in the XSL does not work the try passing the parameters through to the rendering from code. This is untested since I don't have a Sitecore instance in front of me right now.
Your statically bound control should be included in the ascx, you can set them in the Parameters
attribute as 'key=value' pairs:
<sc:XslFile runat="server" ID="scRendering" Parameters="param1=abc¶m2=xyz" Path="/path/to/rendering.xslt" />
or from code behind in your .cs file:
// statically
scRendering.Parameters = "param1=abc¶m2=xyz";
// using parameters from parent control
Sublayout sublayout = Parent as Sublayout;
scRendering.Parameters = sublayout.Parameters;
You should now have access to the paramaters in your XSL:
<xsl:param name="param1"/>
<xsl:param name="param2"/>
<xsl:value-of select="$param1" />
<xsl:value-of select="$param2" />
Personally I would convert the XLST to an ASPX and you can bind it as a standard ASP.Net control, passing in the parameters (or an object of those parameters) that you need from code-behind. You can still access Sitecore Context and all other Sitecore API features you need from code. Best would be to just add another placeholder in your control and add the rendering through the Sitecore interface (or in __Standard Values
for that template) and assign the Parameters Template to the rendering as well - only downside if you have to set the rendering parameters twice, once for each control, but you can continue to use your XSL and you maintain flexibility.
EDIT: Be careful that you don't use spaces in the names of the fields in your Rendering Parameters Template and make sure the names match in the xslt exactly since it is case sensitive.