【发布时间】:2011-11-24 04:33:17
【问题描述】:
我将用户控制文件存储在其他位置,可能在 blob 存储或其他位置。 (不在我的项目工作空间中)并且我将用户控件的 url 存储在数据库中。现在如何将此用户控件加载到我的网页?
【问题讨论】:
-
你尝试了什么?您如何将这些控件加载回内存?用什么格式?
标签: c# asp.net azure-blob-storage
我将用户控制文件存储在其他位置,可能在 blob 存储或其他位置。 (不在我的项目工作空间中)并且我将用户控件的 url 存储在数据库中。现在如何将此用户控件加载到我的网页?
【问题讨论】:
标签: c# asp.net azure-blob-storage
我使用以下方法来加载 .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);
【讨论】: