2011-09-24 55 views
0

我在一些其他位置存储用户控制文件可能在blob存储或其他地方。 (不在我的项目工作空间中),我将用户控件的url存储在数据库中。现在怎样才能加载这个用户控件到我的网页?从asp.net中的blob存储加载网络用户控件

+0

你试过了什么?你如何将这些控件加载回内存?在哪种格式? –

回答

0

我用下面的方法加载.ascx控件。实际上,我已将.ascx文件保存到“文本”字段中。

的我第一次已经注册在web.config文件控制:

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

在网页表单,我从数据库中读取的.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); 
+0

这里“〜/ pg.ascx”是虚拟路径的权利? ,但我将我的用户控件存储在网站文件夹中的其他位置(blob存储) –

+0

是的,它是虚拟文件,ASP.NET不会对该文件(.ascx)提出投诉 - 它是否存在或不存在。 – adatapost

+0

但我的.ascx文件不在根目录下。它在项目文件夹外部 –