我读过有关模板控件/ INamingContainer但我无法理解它在制作自定义控件时遇到的问题。它是否只允许我使用ItemTemplate(就像DataGrid一样)?
参考链接:http://msdn.microsoft.com/en-us/library/36574bf6.aspx
在this链接上,它显示“任何实现此接口的控件都会创建一个新的命名空间,在该命名空间中,所有子控件ID属性都保证在整个应用程序中是唯一的。”,实际上,此接口适用于复合控件而不是非复合的自定义控件?
由于
答案 0 :(得分:0)
它解决的问题是所有服务器控件ID都必须是唯一的。考虑一个简单的复合控件,它向自己添加一个名为“Textbox1”的文本框。
如果将这些复合控件中的两个添加到页面中,页面上将有两个名为“Textbox1”的控件,这违反了唯一性,因此ASP.Net能够在服务器端管理和维护这些文本框。
通过将容器命名空间附加到它们,您将获得唯一的名称。在这种情况下,您将获得类似“myCompositeControl_Textbox1”和“myCompositeControl2_Textbox1”的内容。