2011-09-24 5 views
0

다른 위치에 사용자 정의 컨트롤 파일을 저장하려고합니다. BLOB 저장소 또는 다른 장소에있을 수 있습니다. (내 프로젝트 작업 공간) 및 데이터베이스에 사용자 정의 컨트롤의 URL을 저장합니다. 이제 어떻게이 사용자 정의 컨트롤을 내 웹 페이지에로드 할 수 있습니까?asp.net의 BLOB 저장소에서 웹 사용자 컨트롤로드

+0

무엇을 시도하셨습니까? 어떻게 그 컨트롤을 다시 메모리에로드합니까? 어떤 형식으로? –

답변

0

.ascx 컨트롤을로드하려면 다음 접근 방식을 사용했습니다. 사실 .ascx 파일을 "텍스트"필드에 저장했습니다.

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

가 웹 양식에서, 나는 데이터베이스에서의 .ascx 내용을 읽고 루트 및로드 사용자 제어하에 pg.ascx에 저장 : I의

먼저 web.config 파일에서 컨트롤을 등록했습니다 동적으로

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 파일은 루트가 아닙니다. 그것의 외부 프로젝트 폴더 –

관련 문제