我正在处理一个 asp.net 项目,每次需要使用 jquery 标识符 $(#"objectID") 时,我必须更改每个对象的 ClientIDMode 为静态。因为我已经注意到默认的客户端 ID 模式是继承,所以我将 MainContent 客户端 ID 模式设置为静态,并发现所有对象都变成了静态的。
这在工作中使用 jquery 时肯定会省很多时间,但我想知道这样做是否有任何缺点,是否有任何理由不应该一开始就将 ClientIDMode 设置为静态?
这在工作中使用 jquery 时肯定会省很多时间,但我想知道这样做是否有任何缺点,是否有任何理由不应该一开始就将 ClientIDMode 设置为静态?
如果涉及到用户控件等内容,请小心设置ClientIDMode为Static,否则可能会出现多个具有相同ID的元素。
对于像GridView这样的数据绑定控件,您还需要使用ClientIDRowSuffix属性来确保每行都有所区别。
这篇文章有一些好的例子。
在JavaScript中处理ID的另一种方法是像这样做:
var something = '<%= btnId.ClientID %>';
示例:如果您有一个像这样的按钮控件:
<asp:Button ID="btnId" runat="server"></asp:Button>
如果ID被翻译为id="ct100_ContentPlaceHolder1_btnId"
,那么你可以使用变量something
来访问控件。