在每个对象上设置ClientIDMode = Static是否有任何缺点(在主页的maincontent上设置)

我正在研究asp.net项目,每次我需要使用jquery标识符$(#“objectID”)。 我必须将每个对象上的ClientIDMode更改为静态。 由于我注意到默认客户端ID模式是Inherit所以我将MainContent Client ID模式设置为静态,并且我发现所有对象都变为静态。

这肯定会在使用jquery时节省大量时间,但我只是想知道这有什么缺点,并且有没有理由为什么ClientIDMode首先不应该设置为静态?

您需要注意将ClientIDMode设置为静态以用于用户控件之类的操作,或者您最终可能会使用具有相同ID的多个元素。

对于像GridView这样的数据绑定控件,您还需要使用ClientIDRowSuffix属性以确保区分每一行。

这篇文章有一些很好的例子。

在JavaScript中处理ID的另一种方法是执行以下操作:

var something = '<%= btnId.ClientID %>'; 

示例:如果您有这样的按钮控件:

  

并且ID被转换为id="ct100_ContentPlaceHolder1_btnId"然后您可以使用变量来访问控件。