0

我将用户控制文件存储在其他位置,可能位于 blob 存储或其他位置。(不在我的项目工作空间中)并且我将用户控件的 url 存储在数据库中。现在如何将此用户控件加载到我的网页?

4

1 回答 1

0

我使用以下方法来加载 .ascx 控件。事实上,我已经将 .ascx 文件保存到“文本”字段中。

首先我在 web.config 文件中注册了一个控件:

<pages>
  <controls>
    <add  tagPrefix="tab" src="~/pg.ascx" tagName="Test"/>
  </controls>
</pages>

在 webform 中,我从数据库中读取 .ascx 内容并将其保存到根目录下的 pg.ascx 并动态加载用户控件。

Control t = LoadControl("~/pg.ascx");
PlaceHolder1.Controls.Add(t);

编辑:我正在添加一个已存储到 StringBuilder 对象中的用户控件定义。

System.Text.StringBuilder sb = new System.Text.StringBuilder();
 sb.Append("<%@ Control Language=\"C#\" ClassName=\"m1\" %>");
 sb.Append("<script runat=\"server\">");
 sb.Append("int no=10;");
 sb.Append("public void page_load(){ for(int i=1;i<=no;i++) { Response.Write(i);} }");
 sb.Append("</script>");
 sb.Append("<h1>Hello</h1>");

 System.IO.File.WriteAllText(MapPath("~/pg.ascx"), sb.ToString());
 Control t = LoadControl("~/pg.ascx");
 PlaceHolder1.Controls.Add(t);
于 2011-09-24T10:01:23.293 回答