在ASP.NET中如何计算'name'属性?
我试图了解'name'属性如何为通过ASP.NET呈现的标记中的元素起作用在ASP.NET中如何计算'name'属性?
I.e. <select id="lblxyz" name="ctl00$c$ctl341$lblxyz">
什么是ctl00
,c
和ctl1341
?
如果我创建一个WebControl
,给它一个任意的ID,然后将一个Button
其Controls
集里面,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