【发布时间】:2012-02-02 11:42:42
【问题描述】:
对于电子商务系统,下订单后,我有一个显示订单详细信息的自定义用户控件。我还想将相同的订单详细信息写入电子邮件,因此我想将用户控件的内容写入可以添加到电子邮件正文的字符串。
我尝试使用 RenderControl,但是没有填充用户控件上的动态填充标签控件。
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);
OrderDetails1.RenderControl(htw);
return sb.ToString();
我在其他地方找到了可以将控件添加到页面,然后将页面的输出写入字符串的地方,但这感觉很笨拙。
似乎我应该能够在第一次渲染控件时捕获它的内容,这样我就不必重新填充它并重新渲染它。有人知道怎么做吗?
如果不是,那么填充控件的最简洁方法是什么?
【问题讨论】:
-
你需要先DataBind()这个控件吗?
-
您需要创建一个 Page 类的实例并动态添加/呈现您的用户控件。然后您可以将渲染的内容抓取到一个字符串中,您可以在此处查看示例(第三个代码示例):encosia.com/…
标签: asp.net user-controls render