动态添加控件,如何在后台获取ClientID?

pdsszh 2010-08-06 02:21:24
txtBox = new TextBox();
txtBox.Attributes["onfocus"] = "this.blur();";

HtmlImage image = new HtmlImage();
image.Attributes["style"] = "cursor: hand;";
image.Attributes["id"] = "img2";
image.Attributes["onclick"] = "WdatePicker({el:$dp.$('" + txtBox.ClientID + "')})";
image.Attributes["src"] = "images/calendar.jpg";


这个获取的id是错误的,请教如何获得?这是内容页,使用了MasterPage.
...全文
416 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
myhope88 2010-08-06
  • 打赏
  • 举报
回复
你这样好像不行吧,不是要加<%=%>吗
flyerwing 2010-08-06
  • 打赏
  • 举报
回复
楼上的对呀估计成.
阿彪兄 2010-08-06
  • 打赏
  • 举报
回复
var month = document.getElementById("<%=ddlMonth.ClientID %>");
这是楼主想要的吗?还有就是要注意顺序,比如说你必须保证在后台是先添加了控件的,然后在前台js中读取和访问
你可以把js访问aspx页面的最后,或者说在后台写js代码添加完控件后再Page.ClientScript.Regis......
试下,不知行不
阿非 2010-08-06
  • 打赏
  • 举报
回复
蓝色风影 2010-08-06
  • 打赏
  • 举报
回复
没学到.哎.
pdsszh 2010-08-06
  • 打赏
  • 举报
回复
大家的回答没有什么用,算了,结贴,暂且把名字写死,如果有问题,那就写个js的函数吧。
yulei243007703 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 onlylikews 的回复:]

估计你是因为没有添加就获取ClientID了。
必须要先添加完再获取ClientID。
[/Quote]
可能是这样的效果,
把TextBox添加进页面或容器中,在添加Image
showerman 2010-08-06
  • 打赏
  • 举报
回复
我深刻怀疑你有没有吧控件添加到容器里
Purple_Sky2010 2010-08-06
  • 打赏
  • 举报
回复
留言看下楼主赏分不,哈哈
bonnibell 2010-08-06
  • 打赏
  • 举报
回复
txtBox 添加到父控件后
再取 txtBox.ClientID 试试

没看到添加到父控件的代码
wang2392219 2010-08-06
  • 打赏
  • 举报
回复
学习学学!
yxz2873 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 pdsszh 的回复:]
不好意思,让大家以为没有添加txtBox.ID,其实是有的,不然我如何获得id为txtBoxCustReqDate呢?
把程序重新贴出,
txtBox = new TextBox();
txtBox.ID = txtPrefix + dataRow["keyword"].ToString();
txtBox.Attributes["style"] = "width:200px;";
t……
[/Quote]
帮顶
pdsszh 2010-08-06
  • 打赏
  • 举报
回复
谢谢大家关注,请路过的帮忙。
pdsszh 2010-08-06
  • 打赏
  • 举报
回复
不好意思,让大家以为没有添加txtBox.ID,其实是有的,不然我如何获得id为txtBoxCustReqDate呢?
把程序重新贴出,
txtBox = new TextBox();
txtBox.ID = txtPrefix + dataRow["keyword"].ToString();
txtBox.Attributes["style"] = "width:200px;";
txtBox.Attributes["onfocus"] = "this.blur();";

HtmlImage image = new HtmlImage();
image.Attributes["style"] = "cursor: hand;";
image.Attributes["id"] = "img2";
image.Attributes["onclick"] = "WdatePicker({el:$dp.$('" + txtBox.ClientID + "')})";
image.Attributes["src"] = "images/calendar.jpg";
onlylikews 2010-08-06
  • 打赏
  • 举报
回复
估计你是因为没有添加就获取ClientID了。
必须要先添加完再获取ClientID。
ycl1314 2010-08-06
  • 打赏
  • 举报
回复
路过,学习
pdsszh 2010-08-06
  • 打赏
  • 举报
回复
程序中有txtBox.ID=txtBoxCustReqDate,请大家关注!
pdsszh 2010-08-06
  • 打赏
  • 举报
回复
我程序中添加的id就是txtBoxCustReqDate,可关键是,我要添加js的click方法,里面要用到ClientID,要是直接写死成ctl00_ContentPlaceHolder1_txtBoxCustReqDate,感觉不妥,呵呵
jajawoshi 2010-08-06
  • 打赏
  • 举报
回复
txtBox.ID="";应该可以指定
  • 打赏
  • 举报
回复
那就在你声明这个控件时,添加ID属性
[Quote=引用 3 楼 pdsszh 的回复:]
谢谢。
txtBox.ClientID 获得的id是txtBoxCustReqDate。但是实际产生的是,ctl00_ContentPlaceHolder1_txtBoxCustReqDate,如何在程序中获得呢?

请大家帮忙。
[/Quote]
加载更多回复(4)

62,074

社区成员

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

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

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

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