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

时间:2011-05-19 10:49:59

标签: jquery asp.net client-side

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

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

2 个答案:

答案 0 :(得分:18)

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

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

This post有一些很好的例子。

答案 1 :(得分:4)

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

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

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

<asp:Button ID="btnId" runat="server"></asp:Button>    

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