.net教程:Asp.net 中ClientID的用法探讨

本文详细探讨了在ASP.NET环境下,如何解决用户控件和母版页子页面中JavaScript访问服务器控件ID时出现不一致的问题。通过展示特定代码片段,介绍了获取动态创建控件ClientID的方法,并提供了手工生成ClientID解决动态控件访问问题的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于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个小时的研究解决,并进行了测试没有问题

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值