ClientID是由ASP.Net生成的服务器控件得客户端标识符,当这个控件生成到客户端页面的时候,在客户端代码访问该控件时就需要通过ClientID来访问。
以文本框为例:
一、未使用母版页
js可以使用document.getElementById('控件的ID')形式,也可以使用document.getElementById('<%=控件的ID.ClientID %>')的形式。
注意:使用HTML <input>标签,想在后台取得其Value值(string text = this.Text1.Value;),或者在js用document.getElementById('<%=Text1.ClientID %>');的形式获取控件id,需要变为服务器控件,加上runat="server",即<input id="Text1" type="text" runat="server" onblur="change()">即可,当然,即使加上runat="server",js也可以使用document.getElementById('Text1');获取其id。
二、使用母版页
①对于标准服务器控件,如<asp:TextBox>,js获取其控件ID必须使用document.getElementById('<%=控件的ID.ClientID %>');获取其ID,代码如下:
如果使用document.getElementById('控件的ID');会出现如下错误:
②对于HTML <input>标签,
如果作为服务器控件,即有runat="server",js获取其id使用document.getElementById('<%=控件的ID.ClientID %>');
如果不作为服务器控件,使用document.getElementById('控件的ID');获取其id。 否则也会出现上图的错误。
如果在母版页body内的ContentPlaceHolder控件加上ClientIDMode="Static" 属性后,内容页中js获取服务器控件id就可以直接使用其ID名(不用使用<%=控件ID.ClientID %>)