2009-12-21 61 views
0

我阅读了有关模板控件/ INamingContainer的内容,但我无法理解它在制作自定义控件时解决了什么问题。它是否仅仅允许我使用ItemTemplate(就像DataGrid一样)?关于自定义模板控件的问题

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

this链接,它说:“实现这个接口的任何控件创建一个新的命名空间中的所有子控件ID属性,保证整个应用程序中是唯一的。”,所以真的,这个接口是用于复合控件而不是非复合的自定义控件?

感谢

回答

0

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

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

通过将容器名称空间附加到它们,您会得到一个唯一的名称。在这种情况下,你会得到像“myCompositeControl_Textbox1”和“myCompositeControl2_Textbox1”。