Although the difference is very small, it makes difference.
For instance, when you create a textbox in code behind file and try to access its ClientID you will see something like the following;
(cAM is the ID of the control)
ctl00_ctl00_BodyStyle_MainContent_DisplayWindow_ctl00_ctl02_cAM
However, once you would like to catch the Request.Form properties, your textbox will be shown as;
ctl00$ctl00$BodyStyle$MainContent$DisplayWindow$ctl00$ctl02$cAM
Yes only the separators are different, you need to replace '_' with '$' if you would like to find your control in Request.Form keys.
public string ClientIdFormSearchable(string clientId)
{
return clientId.Replace('_', '$');
}
Comments
Unknown · 19 March 2010
Better yet, use UniqueID instead of Client ID. This is the correct Id and doesn't require any replacement.
Beck · 14 April 2010
Thank you, this solved my problem (I used the UniqueID property).