Загрузка веб-элементов управления из хранилища BLOB-объектов в asp.net - PullRequest
0 голосов
/ 24 сентября 2011

Я храню управляющий файл пользователя в другом месте, может быть, в хранилище больших двоичных объектов или в другом месте.(не в моем рабочем пространстве проекта), и я храню URL пользовательского элемента управления в базе данных.Теперь, как загрузить этот пользовательский контроль на мою веб-страницу?

1 Ответ

0 голосов
/ 24 сентября 2011

Я использовал следующий подход для загрузки элементов управления .ascx. Фактически я сохранил файлы .ascx в поле «текст».

Сначала я зарегистрировал элемент управления в файле web.config:

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

В веб-форме я считываю содержимое .ascx из базы данных и сохраняю его в pg.ascx под root и динамически загружаю пользовательский элемент управления.

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

EDIT: Я добавляю определение пользовательского элемента управления, которое я сохранил в объект 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...