代码之家  ›  专栏  ›  技术社区  ›  GurdeepS

关于自定义模板化控件的问题

  •  0
  • GurdeepS  · 技术社区  · 15 年前

    我读过模板化控件/InamingContainer,但我不理解它在创建自定义控件时解决了什么问题。它是否只允许我使用itemtemplate(就像datagrid一样)?

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

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

    谢谢

    1 回复  |  直到 15 年前
        1
  •  0
  •   womp    15 年前

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

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

    通过将容器名称空间附加到它们,可以得到一个唯一的名称。在这种情况下,您将得到类似“mycompositecontrol_textbox 1”和“mycompositecontrol2_textbox 1”的内容。