您的位置:首页 > 编程语言 > ASP

Asp.net 中ClientID的用法探讨

2008-10-16 17:42 495 查看
2008-08-15 12:14
关于ClientID的使用我遇到一下问题:

获取由 ASP.NET 生成的服务器控件标识符。

问题一: 用户控件的页面JavaScript中需要使用Asp.net的控件ID,出现不一致。

问题二:母版页的子页面JavaScript中需要使用Asp.net的控件ID,出现不一致。

解决办法:

document.getElementById("<%=TextBox1.ClientID%>").value="1234567";

此代码可以在客户端完成对服务器端控件的访问,由于ASP.NET会为把服务器端控件在客户端的呈现生成不同的名称,所以此功能比较有用获取。

注意采用此解决办法的前提: Asp.net的控件为静态控件(通过工具添加的控件)

问题三: 动态创建控件的ClientID的获得存在:不能在页面中采用"<%=TextBox1.ClientID%>".方法获得(不能的方法,因为控件是动态创建的);也不能在页面脚本中采用TextBox1.ClientID的方法获得(获得的ID是不正确的)。

解决办法:

(CitySpecProductScheduledControl.ascx.cs代码片段 )

TextBox text = new TextBox();

text.MaxLength = 12;

text.Columns = 12;

text.Text = DateTime.Now.ToShortDateString();

text.ID = "dateId";

text.Attributes.Add("onclick", "calendar()");

text.Attributes.Add("class", "text");

HtmlImage dateimg = new HtmlImage();

dateimg.Src = "../CommonImages/cal.gif";

string js = string.Format("calendar({0}_{1})",this.ClientID, text.ClientID); //关键代码,按照客户端ClientID的产生规则手工生成。

dateimg.Attributes.Add("onclick", js);

以上解决办法经过1个小时的研究解决,并进行了测试没有问题

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: