2011-09-24 63 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文件不在根目錄下。它在項目文件夾外部 –