3
電子商取引システムの場合、注文後に注文の詳細を表示するカスタムユーザーコントロールがあります。私は電子メールに同じ注文の詳細を書きたいので、ユーザーコントロールの内容を電子メールの本文に追加できる文字列に書きたいと思っています。コントロールを文字列にレンダリングするにはどうすればいいですか
RenderControlを使用しようとしましたが、ユーザーコントロールの動的に設定されたラベルコントロールには値が設定されませんでした。
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
OrderDetails1.RenderControl(htw);
return sb.ToString();
は、私がどこかに私がページにコントロールを追加して、文字列へページの出力を書きますが、これはクルージ的に感じたことを見出しました。
コントロールを最初にレンダリングするときにコントロールの内容をキャプチャして、再ペイントして再レンダリングする必要がないようです。誰でも知っている?
そうでない場合は、コントロールを作成する最もクリーンな方法は何ですか?
コントロールを最初にDataBind()する必要がありますか? – Malk
Pageクラスのインスタンスを作成し、それにユーザーコントロールを動的に追加/レンダリングする必要があります。次に、レンダリングされたコンテンツを文字列に取り込むことができます。ここでは例を見ることができます(3番目のコード例):http://encosia.com/boost-aspnet-performance-with-deferred-content-loading/ – Zachary