0

ユーザー制御ファイルを他の場所に保存していますが、BLOBストレージまたは他の場所にある可能性があります。(私のプロジェクトのワークスペースにはありません)そして私はユーザーコントロールのURLをデータベースに保存します。では、このユーザーコントロールを自分のWebページにロードするにはどうすればよいですか?

4

1 に答える 1

0

次のアプローチを使用して、.ascx コントロールをロードしました。実際、.ascx ファイルを「テキスト」フィールドに保存しました。

まず、web.config ファイルにコントロールを登録しました。

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

Web フォームでは、データベースから .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);
于 2011-09-24T10:01:23.293 に答える