Asp.net “能不能?”;ascx“;用户控制包装内容?

Asp.net “能不能?”;ascx“;用户控制包装内容?,asp.net,.net-4.0,asp.net-4.0,Asp.net,.net 4.0,Asp.net 4.0,我正在尝试创建一个ascx控件,它可以像面板一样包装内容。我想做一些类似的事情- <%@ Register TagPrefix="FOO" TagName="Section" Src="CollapsibleSection.ascx" %> <Foo:Section runat="server"> [ Section of asp.net webforms page ] </Foo:Section> [asp.net web

我正在尝试创建一个ascx控件,它可以像面板一样包装内容。我想做一些类似的事情-

<%@ Register TagPrefix="FOO" TagName="Section" Src="CollapsibleSection.ascx" %>
    <Foo:Section runat="server">
        [ Section of asp.net webforms page ]
    </Foo:Section>

[asp.net webforms页面的一节]

我已经有一段时间没有做过web表单了,不记得这是否可行?虽然我可以编写一个完全自定义的控件,但如果可能的话,我的应用程序中有许多优点。

您需要使用和继承用户控件。

您需要使用和继承用户控件。

这被称为模板控件

下面是一个简单的教程,解释如何在C#和VB.Net中实现这一点:

引用自MSDN(以上链接):

  • 在.ascx文件中,添加希望模板出现的ASP.NET占位符控件
  • 在用户控件的代码中,实现ITemplate类型的属性
  • 将实现InAdminContainer接口的服务器控件类定义为要在其中创建的实例的容器 模板。这称为模板的命名容器
  • 将TemplateContainerAttribute应用于实现ITemplate的属性,并传递模板的命名类型 容器作为属性构造函数的参数
  • 在控件的Init方法中,重复以下步骤一次或多次:
    • 创建命名容器类的实例
    • 在命名容器中创建模板的实例
    • 将命名容器实例添加到占位符服务器控件的“控件”属性中

  • 这称为模板化控件

    下面是一个简单的教程,解释如何在C#和VB.Net中实现这一点:

    引用自MSDN(以上链接):

  • 在.ascx文件中,添加希望模板出现的ASP.NET占位符控件
  • 在用户控件的代码中,实现ITemplate类型的属性
  • 将实现InAdminContainer接口的服务器控件类定义为要在其中创建的实例的容器 模板。这称为模板的命名容器
  • 将TemplateContainerAttribute应用于实现ITemplate的属性,并传递模板的命名类型 容器作为属性构造函数的参数
  • 在控件的Init方法中,重复以下步骤一次或多次:
    • 创建命名容器类的实例
    • 在命名容器中创建模板的实例
    • 将命名容器实例添加到占位符服务器控件的“控件”属性中