创建Custom contro时用document.getElementById获取组件问题

mayuanf 2012-08-08 03:41:22
我的目的是创建一个custom control,可以有一个textbox和另一个image。
只有在textbox被选中的时候image才显示出来。


protected override void CreateChildControls()
{
img = new Image();
lbl = new Label();
tbx = new TextBox();


img.ImageUrl = "Resouce/PicDate.Image.png";
img.Visible = false;
img.ID = "img";

this.Controls.Add(img);
this.Controls.Add(tbx);
this.Controls.Add(lbl);

tbx.Attributes.Add("onfocus", "document.getElementById('<%=img.ClientID%>').style.display='' ");
}

问题是这个时候我无法获得img这个组件的ClientID,总是提示object为空,我猜测原因是clientid还没生成。。

求教,在线等。
...全文
130 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
winner2050 2012-08-08
  • 打赏
  • 举报
回复
楼主的代码错得好离谱。

<%=img.ClientID%> 是不能在 .cs 文件里面写到aspx的。

而且你都已经 img.ID = "img";
声明好了id,id早就事先知道了,何必还弄动态?
杰拉尔 2012-08-08
  • 打赏
  • 举报
回复
tbx.Attributes.Add("onfocus", "document.getElementById('"+img.ClientID+"').style.display='' ");
liu2343598 2012-08-08
  • 打赏
  • 举报
回复
document.getElementById('<%=img.ClientID%>').style.display=''
document.getElementById('“+img.ClientID+"').style.display=''
mayuanf 2012-08-08
  • 打赏
  • 举报
回复
自己顶一下

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧