繁体   English   中英

有关客户ID的问题

[英]Question about Client IDs

我有一个使用ClientId函数来发射javascript的用户控件。 例如:

Out &= "ValidatorHookupControlID(" & Quote & ddlMonth.ClientID & Quote & "), document.all(" & Quote & CustomValidator1.ClientID & Quote & "));" & vbCrLf

在我看来,ClientID函数不会返回发送到浏览器的最终ID。 而是,ClientID函数似乎只知道其当前的父控件,在这种情况下,它是用户控件,因此返回的ID是ID“ dtmPassportExpirationDate_ddlMonth”

实际上,用户控件包含在母版页中,并且使用的最终ID为:

“ctl00_phPageContent_dtmPassportExpirationDate_ddlMonth”

我可能疯了,但这就是它正在做的事情。 我希望ClientID函数将返回HTML中使用的最终ID。

我想念什么吗?

确保您在页面生命周期的正确时间读取了ClientID。

如果您在PreRender事件中或之后读取它,则将获得完整的ID。 在此之前,您可以通过动态添加控件来操纵WebForms对象,因此ASP.NET不能确定层次结构是什么。

如果您需要对ClientID的更多控制,请升级到ASP.NET 4.0,在此您可以对使用WebForms发送到浏览器的内容进行更细粒度的控制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM