UserControlのコードをデータベーステーブルに格納したり、動的にコンパイルしたり、そこからロードする方法はありますか?私はUserControlの完全なコードを含むデータベースから文字列を取得し、ページに追加することを意味ですか?Web UserControl ascxとコードをデータベースに保存してそこからロードできますか?
2
A
答えて
1
いくつかのアイデア:
(代わりに、コントロールの)ページ全体で
-
のHttpHandlerと一時ファイル
- 利用UserControl.LoadControl()と
- 使用UserControl.LoadControl()
- 使用BuildManager.CreateInstanceFromVirtualPath()オプション1:一時ファイル(最も簡単)
- Webアプリケーションが書き込むディレクトリを作成します。
~/tmp/
(およびWebアプリケーションがそのディレクトリに権限を作成 & を変更与える) 保存ユーザーコントロールの内容一時ファイルへ:
string userControlContents = /* get user control contents from database */; string path = Server.MapPath("~/tmp/2011081612332423.ascx"); System.IO.File.WriteAllText(path, userControlContents);
ユーザーコントロールをロードします。
Control c = UserControl.LoadControl("~/tmp/2011081612332423.ascx")
ユーザーコントロールを目的のページに追加します。
this.Controls.Add(c);
オプション2:のHttpHandler
- IDによってユーザーコントロールの内容を取得し、
Response
ストリーム- にデータベースからの生のコンテンツを出力するページまたはのHttpHandlerを実装これは、UserControl.LoadControl()がおそらくResponseストリームを気にしないので、で動作しない可能性があります。
その後オプション1のようにコントロールを読み込む:
Control c = UserControl.LoadControl("~/UserControlFromDB.ascx?id=392")
- ファイル名 "UserControlFromDB.ascx" は常に同じであるため、ASP.NETのJITキャッシングが(のみ
id=NNN
を壊すかもしれません変更)。 URLの書き換えはこれを回避することができます。
- ファイル名 "UserControlFromDB.ascx" は常に同じであるため、ASP.NETのJITキャッシングが(のみ
オプション3:ページをコンパイルするだけではなくコントロール:
BuildManager.CreateInstanceFromVirtualPath()
が仮想パスからASP.NETでPage
をコンパイルします。したがって、データベース全体にページを格納し、動的にコンパイルすることができます。
免責事項:私はコントロールまたはデータベース内のページを保存することはお勧めしません。保守、デバッグ、およびセキュリティコストが増加します。
- Webアプリケーションが書き込むディレクトリを作成します。
関連する問題
- 1. ASCX Webコントロールはデータベースに保存されていません
- 2. UserControl(ascx)でユーザーAutoCompleteExtenderを置き、そのコードビハインドにServiceMethodを配置します。
- 3. SQLサーバー2008データベースをASP.NET Webページに保存してロードする
- 4. データベースにXML構成ファイルをフィールドとして保存するか、そのパスを保存しますか?
- 5. NetbeansからDerbyデータベースを作成すると、そのデータベースはどこに保存されますか?
- 6. Open Web Analyticsでは、Webアプリケーション用にデータベースに保存されたデータからレポートを作成できますか?
- 7. NSStringを使用してイメージを保存/ロードできますか?
- 8. Webサービス呼び出しからのデータをデータベースに保存
- 9. テキストボックスの内容を取得し、そこから.txtファイルを作成してデータベースに保存します
- 10. サーバにsqliteデータベースをアンドロイドで保存することはできますか?
- 11. データベースを保存していますか?
- 12. ディスクからsqlite3データベースを取得し、メモリにロードしてディスクに保存しますか?
- 13. html/erbコードをデータベースに保存しますか?
- 14. どこの(私の)SQLデータベースがWebサーバーに保存されていますか?
- 15. WebサイトにJavascriptをHTMLコードとして保存するには
- 16. RAMにデータベースをロードすることはできますか?
- 17. Javaアプリケーションとそのデータベースをリムーバブルディスクに保存することはできますか?もしそうなら、どのように?
- 18. 動的にasp.net Webサイトにユーザーコントロール(ascx)をロードします。
- 19. データベースに保存するときにリッチテキストの書式を保持しますか?
- 20. イメージを最初にサイズ変更してからデータベースに保存するか、データベースに保存してからサイズを変更します
- 21. Webアプリケーション(asp.net MVC)からWord文書をロード/保存する
- 22. C#コードを使用してascxコンポーネントをロードする
- 23. Sqlite3データベースにHTMLをXMLとして保存することはできますか?
- 24. Nokogiriと解析してデータベースに保存しますか?
- 25. 入力データをファイルに保存してファイルからロードする
- 26. PHP/Graph API:FacebookのWebアプリケーションから変数の値をユーザープロファイルに保存することはできますか?
- 27. Accessマクロを別のAccessデータベースで使用するアドインとして保存することはできますか?
- 28. NSMutableArrayをすべての内容と一緒にファイルに保存し、そこから後で復元することはできますか?
- 29. 新しいレコードをDatagridviewからデータベースに保存します。
- 30. データベースのパスワードはどこに保存しますか?
私の脳は溶けています:) –
@pstなぜですか?私は現在Sharepointで作業しており、データベースからすべてのコードも取得します。だから何とかできなければならない。 – teenup
データベースからユーザーコントロールをロードします...?私は彼らがControlTemplatesにいると確信していました... –