问题
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 ?
回答1:
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.
回答2:
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.
来源:https://stackoverflow.com/questions/6057490/is-there-any-drawback-to-set-clientidmode-static-on-every-object-set-on-main