在ASP.NET中如何计算'name'属性?

我试图了解'name'属性如何为通过ASP.NET呈现的标记中的元素起作用在ASP.NET中如何计算'name'属性?

I.e. <select id="lblxyz" name="ctl00$c$ctl341$lblxyz">

什么是ctl00,cctl1341

如果我创建一个WebControl,给它一个任意的ID,然后将一个ButtonControls集里面,name属性似乎并没有反映容器的id?

回答:

您发现的关键是并非所有控件都会触发此行为。关键是INamingContainer接口。只有命名容器将会为您所看到的控件名称做出贡献,其他控件则不会。

上面链接的MSDN页面说得非常好:该接口“标识一个容器控件,它在Page对象的控件层次结构内创建一个新的ID名称空间。”

回答:

您可以控制客户端ID出现使用新的ClientIDMode:

All about Client ID Mode in ASP.NET 4

回答:

所产生的名字一般属性总是使用ctl00,剩下的就是基于控制生活中的控制,其中产生层次结构。任何实现接口的父控件都将为为任何子控件生成的名称作出贡献。

回答:

这可能是你感兴趣的,它列出了生成的id /名称:http://www.mostlylucid.net/archive/2008/11/03/way-too-much-information-on-control-ids-and-asp.net-4.0.aspx

以上是 在ASP.NET中如何计算'name'属性? 的全部内容, 来源链接: utcz.com/qa/258377.html

回到顶部