1

我正在使用一个接受服务器控件集合的容器。服务器控件接受用户控件的集合。

<Container>
  <Servercontrol>
    <UsercontrolA/>
    <UsercontrolB/>
    <UsercontrolC/>
    <UsercontrolD/>
  </Servercontrol>
  <Servercontrol>
    <UsercontrolE/>
  </Servercontrol>
</Container>

这将基本呈现为表格中的两列,带有标题行和正文行。左列的正文行将有 4 个用户控件,右侧将有 1 个。

问题是我希望程序员能够将任何用户控件添加到这个容器中......但是除非他们添加了适当的注册标签,否则不会呈现用户控件。

<%@ Register TagPrefix="C" TagName="A" Src="~/Controls/UsercontrolA.ascx" %>
<%@ Register TagPrefix="C" TagName="B" Src="~/Controls/UsercontrolB.ascx" %>
<%@ Register TagPrefix="C" TagName="C" Src="~/Controls/UsercontrolC.ascx" %>
<%@ Register TagPrefix="C" TagName="D" Src="~/Controls/UsercontrolD.ascx" %>
<%@ Register TagPrefix="C" TagName="E" Src="~/Controls/UsercontrolE.ascx" %>

此外,我无权修改网络配置。

有什么解决方法吗?

4

1 回答 1

2

那么你可以像这样在页面加载时动态加载它们:

private const string UCFolderName = "~/Controls/";
...    
var usercontrolA= Page.LoadControl(UCFolderName + "UsercontrolA.ascx");

ServercontrolContainer.Controls.Add(UsercontrolA);

文件ServercontrolContainer中的元素在哪里.ascx

于 2013-08-20T13:57:02.473 回答