Is there any drawback to set ClientIDMode = Static on every object ( set on maincontent of master page)
I am working on asp.net project and each time i need to use jquery identifier $(#"objectID"). I have to change the ClientIDMode on each object to be static. Since I have noticed that the default client ID mode is Inherit so i set the MainContent Client ID mode to be static and i have found that all the object became static.
This will sure save a lot of time when working with jquery, but i just want to know is there any drawback from this and is there any reason why shouldn't ClientIDMode set to be static at the first place ?
You want to be careful about setting the ClientIDMode to Static for things like user controls, or you could end up with multiple elements with the same ID.
For data-bound controls like GridView, you'll also want to use the ClientIDRowSuffix property in order to ensure each row is differentiated.
This post has some good examples.
Another way to deal with the IDs in JavaScript would be to do something like this:
var something = '<%= btnId.ClientID %>';
Example: If you have a button control like this:
<asp:Button ID="btnId" runat="server"></asp:Button>
and the ID is translated to id="ct100_ContentPlaceHolder1_btnId"
then you could use the variable something
to access the control.