有关自定义模板控件的问题

时间:2009-12-21 23:30:12

标签: asp.net

我读过有关模板控件/ INamingContainer但我无法理解它在制作自定义控件时遇到的问题。它是否只允许我使用ItemTemplate(就像DataGrid一样)?

参考链接:http://msdn.microsoft.com/en-us/library/36574bf6.aspx

this链接上,它显示“任何实现此接口的控件都会创建一个新的命名空间,在该命名空间中,所有子控件ID属性都保证在整个应用程序中是唯一的。”,实际上,此接口适用于复合控件而不是非复合的自定义控件?

由于

1 个答案:

答案 0 :(得分:0)

它解决的问题是所有服务器控件ID都必须是唯一的。考虑一个简单的复合控件,它向自己添加一个名为“Textbox1”的文本框。

如果将这些复合控件中的两个添加到页面中,页面上将有两个名为“Textbox1”的控件,这违反了唯一性,因此ASP.Net能够在服务器端管理和维护这些文本框。

通过将容器命名空间附加到它们,您将获得唯一的名称。在这种情况下,您将获得类似“myCompositeControl_Textbox1”和“myCompositeControl2_Textbox1”的内容。